Caramelize the Onions: Add the butter and the olive oil to a large pot over medium heat. Add sliced onions and cook slowly, tossing them often, until the onions are soft, golden-brown and caramelized (about 25 – 30 minutes).
Season: Fold in garlic, thyme, salt, and pepper. Fry for 2 minutes until fragrant.
Simmer Broth: Pour in beef broth and chicken broth, then add bay leaves, and let the soup to simmer for 20 minutes, to infuse all the flavors.
Prepare Bowls: Ladle the hot soup into oven-safe bowls, then place a slice of keto bread (optional) on top.
Add Cheese: Sprinkle generously with shredded Gruyère or mozzarella cheese.
Broil and Serve: Put under a broiler until cheese is melted and bubbly. Let stand 5 minutes before serving hot.