Place butter and olive oil in a large saucepan over a very low heat, until butter melts.
Add onion, stirring until coated, cover and cook for 40 minutes, stirring every 10 minutes to prevent onion from catching on the bottom and caramelise without burning.
Increase heat to medium, add garlic, cook for 2 minutes, before adding flour. Stir the onion mixture continuously until well coated in flour. Add wine, stock, sherry and bay leaves. Bring to a simmer, reduce heat to low, cover and cook for 30 minutes or until soup thickens slightly. Check the seasoning and adjust accordingly.
Meanwhile to make the Gruyere toasts, lightly brush one side of each baguette slice with olive oil and place on a baking tray. Place baking tray under a preheated grill on medium-high heat, cooking for 2 minutes or until golden.
While bread slices are still warm, rub the toasted side with garlic.
In a small bowl combine parsley and gruyere cheese. Just before serving sprinkle toasted baguette slices with cheese mixture and cook for a further 2 minutes until cheese is bubbly and melted.
To serve, divide soup between four bowls and top with Gruyere toasts.Bon Appétit!