Peel and finely slice the onions. Uniform slices ensure even caramelisation, which is crucial for the soup’s base.
In a large heavy bottomed pot, melt the butter with olive oil over low heat. Add the sliced onions and stir to coat them evenly. Cook gently for about 25 to 30 minutes, stirring occasionally, until the onions are soft and golden.
Sprinkle in the sugar to help the onions develop a rich caramel hue. Add the minced garlic and cook for another 2 minutes, allowing it to release its aroma without burning.
Dust the onions with plain flour and stir well. Cook for 2 to 3 minutes to eliminate any raw flour taste. This step slightly thickens the broth, giving it body.
Pour in the white wine, scraping the bottom of the pot to release all the caramelised bits. Simmer gently until the liquid reduces by half, concentrating the flavours.
Stir in the beef stock, bay leaf, and thyme. Season with salt and pepper to taste. Bring the soup to a simmer, then lower the heat and cook gently for 30 to 35 minutes, uncovered. The soup should develop a deep, brown colour and a robust aroma.
While the soup simmers, slice the baguette into rounds and toast them lightly under a grill or in the oven. This ensures they stay crisp when topped with cheese.
Preheat the grill to medium to high. Ladle the soup into ovenproof bowls, place the toasted baguette slices on top, and sprinkle generously with grated Gruyère.
Place the bowls under the grill for 3 to 5 minutes, or until the cheese is melted, bubbling, and lightly golden. Watch closely to prevent burning.
Carefully remove the bowls and allow to cool slightly before serving. Soupe à l’Oignon is best enjoyed piping hot, with a crisp salad or glass of wine on the side.