In a large pot, cook the ground beef over medium heat until browned. Drain excess grease and set aside.
In the same pot, melt 2 tablespoons of butter and sauté onion, carrots, celery, and garlic until softened (about 5 minutes).
Add diced potatoes and chicken broth to the pot. Bring to a boil, then reduce heat and simmer until the potatoes are tender (10–15 minutes).
In a separate saucepan, melt the remaining 2 tablespoons of butter. Whisk in flour to create a roux. Gradually add milk, whisking constantly, until smooth and thickened.
Stir the roux into the pot of soup. Add shredded cheddar cheese and stir until melted and smooth.
Mix in the cooked ground beef and heavy cream. Add Worcestershire sauce, paprika, salt, and pepper to taste.
Simmer for 5 minutes to blend flavors. Serve hot with optional garnishes like extra cheese, parsley, or crumbled bacon.