Heat olive oil in a large skillet or Dutch oven over medium-high heat. Season beef with salt and pepper, then brown on all sides until nicely seared.
Remove beef and add chopped onion to the same pan. Cook until softened, scraping up the browned bits from the bottom. Add garlic and cook for 30 seconds until fragrant.
Return beef to the pot. Pour in beef broth and add thyme (or rosemary) and bay leaf.
Add carrots and potatoes, stirring gently to combine.
Reduce heat to low, cover, and simmer for 60–90 minutes until the beef is fork-tender and vegetables are soft.
Taste and adjust seasoning if needed. Remove bay leaf before serving.