01 - Cook chopped beef bacon over medium heat in a large pot until crispy. Remove with a slotted spoon and set aside, leaving approximately 2 tablespoons of fat in the pot.
02 - Add unsalted butter to the pot. When melted, incorporate chopped onion, celery, and carrots. Sauté for 5 minutes until softened, then add minced garlic and cook for an additional minute.
03 - Stir in all-purpose flour and cook for 2 minutes, maintaining constant stirring to avoid lumps.
04 - Gradually pour in chicken or vegetable broth while scraping the pot’s bottom. Add diced potatoes, smoked paprika, salt, and freshly ground black pepper.
05 - Bring to a boil, then reduce heat and simmer uncovered for 15 to 20 minutes until potatoes are tender.
06 - Partially mash potatoes in the soup using a potato masher or immersion blender, preserving some chunks for texture.
07 - Stir in whole milk and heavy cream, then simmer for 5 minutes. Add shredded cheddar and mozzarella cheese, stirring until fully melted and smooth.
08 - Return cooked beef bacon to the soup (reserve some for garnish if desired). Adjust seasoning by tasting and adding salt or pepper if necessary.
09 - Ladle hot soup into bowls and garnish with extra shredded cheddar cheese and chopped chives or green onions.