In a large pot or Dutch oven, melt the butter and olive oil over medium heat. Add the sliced onions, and cook, stirring occasionally, for about 30-40 minutes or until caramelized and golden brown.
4 Tablespoons unsalted butter, 2 Tablespoons olive oil, 5 large onions
Add the minced garlic to the pot, and cook for an additional 1-2 minutes or until fragrant.
2 cloves garlic
Add the beef broth, vegetable broth, bay leaf, sugar, salt, and pepper to the pot. Stir well to combine. Bring the soup to a simmer, and let it cook for about 30 minutes, allowing the flavors to meld together. Remove the bay leaf before serving.
4 cups beef broth, 2 cups vegetable broth, 1 bay leaf, 1 teaspoon sugar, Salt to taste, Black pepper to taste
While the soup is simmering, preheat the broiler. Arrange the slices of baguette or French bread on a baking sheet, and toast them under the broiler until they become golden and crispy. Set aside.
Baguette or French bread
Ladle the soup into oven-safe bowls or crocks. Top each bowl with a few slices of the toasted bread, arranging them to cover the surface of the soup.
Sprinkle a generous amount of grated Gruyère or Swiss cheese over the bread slices, ensuring it covers the edges to form a seal.
Gruyère or Swiss cheese
Place the bowls on a baking sheet and transfer them to the oven under the broiler. Broil until the cheese is melted, bubbly, and starts to turn golden brown.
Carefully remove the bowls from the oven (remember they will be hot!). Let them cool for a few minutes before serving.