In a large pot, melt the butter over medium-high heat. Add in the onions, garlic, salt, and pepper and cook until the onions are softened.
Add the ground beef to the pot and cook until it is no longer pink.
Add the flour and stir until combined.
Add the beef broth, Worcestershire sauce, cheddar cheese, potatoes, carrots, and celery. Stir everything together until combined.
Bring the soup to a boil and then reduce the heat to low. Simmer for 20 minutes or until the potatoes and carrots are cooked through.
Top the cheese soup with crumbled bacon and diced tomatoes.