Peel and cut potatoes into approx. 1/2" cubes. Place in a medium sized pot, with just enough water to cover, and let them simmer while preparing the soup base.
In a heavy, large pot, melt the butter and saute' the onion for about 5 minutes, stirring constantly, until bubbly and golden. Don't let the butter burn!
Sprinkle the flour all over the sizzling onions, and stir well. This will be your roux; cook for about 2 minutes on med-low, stirring constantly, until the flour is golden brown. Don't let it burn or stick!
When the roux is ready, season with garlic powder and s&p. Pour in the chicken stock, stirring constantly with a small whisk to get rid of lumps. Stir well, and allow to cook for a minute or two, to 'thicken' a bit. Add the milk to the soup base and blend well.
Add the shredded carrot and blend.
Add the can of "cream of ...." soup - I use either cream of chicken, cream of celery, or cream of mushroom...whatever I have in my pantry!
Add the shredded cheddar cheese, cubed cream cheese, and bacon bits.
Drain the potatoes well, and add them to the soup base.
Cook for another 15 - 20 minutes, until potatoes are completely done, and all the cheddar cheese and cream cheese cubes have melted.
Using a hand potato masher, make a few stabs into the pot to break up some of the potatoes -- don't mash all of them, as you want chunky potatoes in the soup. The 'mashed' ones will thicken the soup nicely.
Serve, and garnish with a tiny pinch of shredded carrot, a pinch of bacon bits, and the diced scallions, including some of the green tops, for color.