Cook the diced bacon in a Dutch oven or soup pot until crisp, then remove it using a slotted spoon while leaving the grease in the pot.
Add butter to the pot and melt it over medium-high heat, then sauté onions for 3 minutes before adding garlic for 20 seconds.
Pour in the chicken broth, scraping the browned bits from the bottom, and season with garlic powder, onion powder, dill weed, chives, salt, and pepper.
Add a bay leaf, bring the mixture to a boil, reduce the heat to medium-low, and let it simmer for 5 minutes.
Stir in shredded chicken.
Cook for another 5 minutes, then whisk in cream cheese until melted and combined.
Mix in the shredded cheese.
Whisk until smooth, and then add baby spinach, cooking for 2 minutes.
Stir in heavy cream and cook for 1 more minute.
Adjust the seasoning to taste, remove the bay leaf, and serve topped with scallions and the reserved crispy bacon.