Peel and dice the potatoes into small cubes, ensuring they are even to promote fast cooking.
Cook chicken bacon in a pot until crispy, then remove it and retain the fat in the pot.
Add butter to the pot, then cook the onion in the bacon fat until it becomes soft and translucent.
Add minced garlic to the pot, stirring and cooking for one minute until fragrant.
Sprinkle flour over the cooked onions, stirring well and cooking for two minutes gently.
Gradually add milk while stirring to help prevent lumps from forming.
Pour chicken broth into the pot, then add the diced potatoes and stir gently.
Bring the soup to a light boil, then reduce the heat and simmer until the potatoes are tender.
Use a potato masher to lightly mash the soup, thickening it while keeping some chunks intact.
Stir in heavy cream and shredded cheese, mixing until the soup is smooth and creamy.
Add salt and black pepper, tasting and adjusting the seasoning as needed.
Top the soup with cooked chicken bacon and green onions. Serve hot and enjoy.