Melt 50g butter with 1 tbsp olive oil in a large heavy-based pan. Add 1kg halved and thinly sliced onions and fry with the lid on for 10 mins until soft.
Once soft, add a small amount of wine and cook for 20 mins more, stirring frequently, until caramelised. The onions should be really golden, full of flavour and soft when pinched between your fingers. Take care towards the end to ensure that they don’t burn.
Heat the beef broth in preparation for adding to the onions. If using, add 4 thinly sliced garlic cloves for the final few mins of the onions’ cooking time.
Sprinkle in 2 tbsp plain flour and stir well. Increase the heat and keep stirring as you gradually add the dry white wine, followed by the hot strongly-flavoured beef stock. Cover and simmer for 15-20 mins.
To serve, turn on the grill, and toast 4-8 slices bread. You can also put the bread in directly without toasting them first. Ladle the soup into heatproof bowls. Put a slice or two of toast on top of the bowls of soup, and pile on 140g finely grated gruyère cheese. Grill until melted. Alternatively, you can complete the toasts under the grill, then serve them on top.