Brown the ground beef in a large soup pot or Dutch oven until cooked through. Season lightly with salt and pepper, then remove from the pot and set aside. Drain excess grease if needed.
Add butter or oil to the pot. Sauté onion, carrots, and celery for 5–7 minutes until softened. Stir in garlic and cook 1 more minute.
Add potatoes and broth. Bring to a gentle boil, then reduce heat and simmer for 12–15 minutes, or until potatoes are tender.
In a separate saucepan, melt butter. Whisk in flour to form a paste, then slowly whisk in milk and cream until smooth and thickened.
Stir the cooked beef back into the soup pot. Pour in the creamy mixture. Add salt, pepper, paprika, mustard, and seasonings. Simmer 5 minutes to let flavors combine.
Reduce heat to low. Stir in cheese a handful at a time until melted and creamy. Avoid boiling once cheese is added.
Taste and adjust seasoning. Serve warm with your favorite toppings.