In a large heavy-bottomed pot or Dutch oven set over medium heat, melt the butter and flour together. Cook for 1-2 minutes, then add in the carrots, onions, garlic, italian seasoning, chili flakes, and nutmeg, stirring to combine. Cook for an additional 2-3 minutes, or until fragrant.
Stir in the chicken broth, add the chicken thighs, and season with salt and pepper. Cover the pot and cook over medium heat for 20-25 minutes. Once tender, shred the chicken (this can be done in or out of the pot).
Bring the soup to a boil over high heat. Stir in the noodles, spinach, and half & half. Let cook until the noodles are tender, about 8-10 minutes.
Lower the heat, then stir in the mozzarella, parmesan, and cream cheese. Carefully mix until thick, creamy, and fully combined. Season with salt and pepper to taste. If the soup is too thick, thin it with additional broth or water.
Allow the soup to cool for about 10 minutes. Serve hot!