Place a large heavy duty pot over medium-high heat. Once hot, add the diced bacon and cook until crispy. Transfer the bacon onto a plate, and discard all but 1 tablespoon of the fat. Add the ground sirloin and break it up with a wooden spoon. Cook until the beef has browned, and is no longer pink. Transfer the beef onto a separate plate.
Add the onion, garlic, carrot, and celery and cook, stirring often, until the vegetables have softened, about 5 minutes. Stir in the potatoes and tomatoes and cook for another 3 minutes. Stir in the beef and season with 1 teaspoon salt, 1/2 teaspoon black pepper, red pepper flakes, basil, oregano, ketchup and mustard. Stir in the chicken stock. Bring to a boil, reduce heat and simmer until the potatoes are fork tender, about 15 minutes.
In the meantime, heat the butter in a saucepan until melted through. Whisk in the flour and cook for about 30 seconds. Add to the soup along with the milk and cook until the soup has thickened. Remove the soup from the heat, and add the cheese and bacon (reserving some for the garnish), stirring until it has melted through. Give it a taste and adjust seasonings accordingly, adding more salt or pepper as needed.
Serve the soup in bread bowls, or just regular bowls, and garnish each with more shredded cheese, bacon, lettuce and a pickle. Enjoy!