In a large Dutch oven or pot, heat butter and olive oil over medium heat. Add the onions and fresh thyme and cook by stirring occasionally until the onions are soft and caramelized for about 20-25 min.
Add garlic, flour, Worcestershire sauce, and pulled beef and continue to cook by stirring occasionally for another 10 min.
Add beef broth, salt, and pepper. Increase the heat to medium-high and bring the soup to a simmer. Cook for 10-12 min.
While the soup is simmering, preheat the oven to 450F and line sliced bread on a baking sheet, drizzle both sides of the baguette slices lightly with olive oil. Toast until lightly brown for 4-5 min.
Ladle the soup in a bread (or a regular) bowl.
Add a slice of bread onto the top of each bowl of soup and top with the gruyere cheese (or mozzarella if you prefer mild cheese). Switch the oven to broil and broil the bowl of soups until the cheese bubbles and is lightly brown.
Serve warm.
