Heat olive oil in a large skillet over medium heat. Sear beef on both sides until well browned, about 5 minutes per side. Transfer to slow cooker.
In the same skillet, add a bit more oil if needed. Sauté garlic for 30 seconds, then add onion and cook until translucent. Transfer mixture to slow cooker.
Add diced tomatoes, juice or vinegar mixture, beef broth, tomato paste, stock cube, basil, oregano, salt, pepper, sugar, and bay leaves to the slow cooker. Stir gently to combine.
Cover and cook on LOW for 7–8 hours or HIGH for 4–5 hours, until the beef shreds easily with two forks.
Optional: For a thicker sauce, mix cornstarch with water and stir into the slow cooker. Cook on HIGH for another 30 minutes.
Shred the beef into the sauce and mix well to combine.
Serve hot over pasta, mashed potatoes, or polenta.