Heat the olive oil in a large heavy-bottomed pot or Dutch oven over medium-high heat. Add the beef cubes in batches, ensuring not to overcrowd the pot. Sear the beef on all sides until browned, about 5-7 minutes per batch. Remove the beef and set aside.
Caramelize The Onions
In the same pot, add the sliced onions. Cook over medium heat, stirring occasionally, until the onions become golden brown and caramelized, approximately 25-30 minutes. Add the minced garlic and cook for an additional 2 minutes.
Deglaze The Pot
Sprinkle the flour over the caramelized onions and stir well to combine. Cook for 2 minutes to eliminate the raw flour taste. Slowly pour in the red wine, scraping up any browned bits from the bottom of the pot. Allow the wine to simmer and reduce by half, about 5 minutes.
Combine Ingredients
Return the seared beef to the pot. Add the beef broth, thyme, and bay leaves. Stir to combine all ingredients. Bring the mixture to a boil, then reduce the heat to low. Cover and let it simmer for 1 to 1.5 hours, or until the beef is tender. Season with salt and pepper to taste.
Prepare The Toppings
While the soup is simmering, preheat your oven's broiler. Place the toasted baguette slices on a baking sheet and sprinkle each slice with grated Gruyère or Swiss cheese. Broil until the cheese is melted and bubbly, about 2-3 minutes. Keep a close eye to prevent burning.
Serve
Ladle the hot soup into bowls. Top each serving with a cheesy baguette slice. Serve immediately and enjoy the rich, comforting flavors.
Notes
The key to this recipe is patience while caramelizing the onions. Taking the time to achieve a deep golden color develops the sweet and savory base that defines French onion soup.