In a large pot, melt the butter and olive oil over medium heat.
Add the sliced onions and sugar, and cook, stirring frequently, for about 30–40 minutes until the onions are deeply caramelized and golden brown.
Stir in the minced garlic and cook for an additional 2 minutes.
Pour in the beef and vegetable broth, then add thyme, bay leaf, salt, and pepper. Bring the mixture to a gentle simmer and cook for 20 minutes.
Preheat your oven to broil.
Remove the bay leaf from the soup, then ladle the soup into oven-safe bowls.
Place a slice of toasted baguette on top of each bowl and generously sprinkle with Gruyère and Parmesan cheese.
Place the filled bowls under the broiler for 3–5 minutes, or until the cheese is bubbly and golden brown.
Carefully remove from the oven and let cool slightly before serving.
Notes
Serve the soup in rustic bowls and garnish with a sprinkle of fresh thyme leaves on top for color. For a touch of elegance, drizzle a little truffle oil over each bowl before serving.