Heat the olive oil in a large pot over medium-high heat.
Add the beef cubes, seasoning with salt and pepper, and sear until browned on all sides.
Once browned, remove the beef and set aside. In the same pot, add the onions and garlic, sautéing until softened.
Add the carrots and apples, continuing to sauté for an additional 5 minutes.
Stir in the cranberries and thyme, then return the beef to the pot.
Pour in the beef broth, making sure to scrape up any brown bits from the bottom of the pot.
Add bay leaves and stir the mixture to combine all ingredients.
Bring the stew to a simmer, cover, and reduce the heat to low. Cook for 2 hours, or until the beef is tender.
Check the seasoning and adjust with salt and pepper if necessary before serving.
Remove the bay leaves and serve hot, garnishing with fresh herbs if desired.