crisp the bacon: add the chopped bacon to a large, heavy-bottomed pot or dutch oven. cook over medium heat, stirring, until the bacon is crispy and the fat has rendered (about 8-10 minutes). use a slotted spoon to move the bacon bits to a paper towel-lined plate.
build the flavor base: drain all but 2 tablespoons of the bacon drippings from the pot. add the chopped onion and celery to the pot and sauté in the bacon fat until tender and translucent, about 5-6 minutes. stir in the minced garlic and cook for 1 more minute until fragrant.
create the roux: add the 4 tablespoons of butter to the pot with the vegetables. once melted, sprinkle in the all-purpose flour. whisk constantly for 1-2 minutes. this step is crucial for toasting the flour, which removes any raw taste and creates a smooth base.
add liquids & potatoes: while whisking, gradually pour in the chicken broth to create a smooth, lump-free liquid. once all the broth is incorporated, whisk in the milk. add the diced russet potatoes and season with salt and pepper.
simmer the soup: increase the heat to bring the soup to a gentle boil, then immediately reduce the heat to a steady simmer. cover the pot and let cook for 15-20 minutes. the soup is ready for the next step when the potatoes are fork-tender.
create the dual texture: turn the heat to low. use a potato masher to press down on the potatoes directly in the pot 5-7 times. the goal is to break up about half of the potatoes to release their starches, which thickens the soup naturally, while keeping the rest as tender chunks.
finish with dairy (off heat): remove the pot completely from the heat. let it rest for 1 minute. stir in the heavy cream and sour cream until combined. now, add the shredded cheddar cheese in handfuls, stirring until each addition is melted before adding the next. this gentle, residual-heat method prevents the cheese from becoming grainy.
serve: stir half of the reserved crispy bacon back into the soup. taste for final seasoning, adding more salt or pepper as needed. ladle the hot soup into bowls and garnish with the remaining bacon, extra cheese, a dollop of sour cream, and fresh green onions.