Cook the Bacon
In a large pot or Dutch oven over medium heat, cook the diced bacon until crispy. Remove bacon with a slotted spoon and set aside on paper towels. Leave about 2-3 tablespoons of bacon fat in the pot (drain excess if needed).
Sauté the Aromatics
In the bacon fat, cook the diced onion and celery over medium heat until softened, about 5-7 minutes. Add the minced garlic and cook for another minute until fragrant.
Make the Roux
Sprinkle the flour over the vegetables and stir well to coat everything. Cook for 1-2 minutes, stirring constantly, to cook out the raw flour taste.
Add Liquids and Potatoes
Gradually pour in the heavy cream and chicken broth, stirring to prevent lumps. Add the diced potatoes and bring to a gentle simmer. Cook for 15-20 minutes, stirring occasionally, until potatoes are fork-tender.
Finish the Soup
Once potatoes are tender, stir in the chopped green onions and cooked bacon (reserve a bit of bacon for topping if desired). Season generously with salt and pepper to taste. Add the shredded cheddar cheese and stir until completely melted and incorporated.
Serve
Ladle into bowls and top with additional green onions, reserved bacon, extra cheese, and a crack of black pepper. Serve hot.