In a large pot, saute onions and butter until onions are lightly brown and caramelized, about 10–15 minutes. Add beef broth, garlic powder, dried thyme, bay leaf, salt and pepper. Stir to combine. Bring mixture to a boil, then cover and let simmer for 15–20 minutes.
About 10 minutes before soup is done, place bread slices on a baking sheet and broil on medium heat for 2–3 minutes, or until tops are golden brown. Remove from oven and set aside. Keep broiler on medium heat.
Once soup has simmered, pour into oven-safe bowls. Place 1 slice of bread into each bowl and then top with shredded cheese (I used about 1/4 cup cheese per bowl). Place back into the oven and broil on medium heat until cheese is fully melted, about 4–5 minutes. Remove from oven and let cool for 5 minutes.
Serve immediately. Enjoy!