Get prepped: Dice the onion and celery, shred the carrots, mince the garlic, chop the spinach, shred the chicken, and measure everything out.
Cook the veggies: Heat 2 tablespoons butter and 1 tablespoon olive oil in a large pot over medium heat. Add 1 cup diced onion, 1 cup diced celery, and1 cup shredded carrots. Cook for 4 to 5 minutes until softened. Stir in 3 cloves garlic and cook for 30 seconds. Season with salt and pepper
Make the roux: Sprinkle ⅓ cup flour over the veggies and stir for 1 minute until the flour coats everything and looks slightly pasty.
Add the broth: Slowly pour in 4 cups chicken broth while whisking. Keep whisking until smooth and no flour lumps remain.
Season it: Add 1 teaspoon Italian seasoning. Bring to a gentle simmer.
Cook the gnocchi: Stir in 1 pound potato gnocchi and cook for about 3 minutes or until they float and are tender.
Add the chicken and cream: Stir in 2 cups cooked, shredded chicken and 1 cups half and half. Let it warm through for 2 to 3 minutes without boiling.
Finish it: Add 1 cup roughly chopped, fresh baby spinach. Stir until the spinach wilts and the soup is creamy and smooth. Add ½ cup grated parmesan and taste, add salt and pepper as needed.
Serve with extra parmesan
Notes
Use freshly shredded parmesan for the best melt.
If the soup gets too thick as it sits, add a splash of broth or milk.
Don't boil the soup after adding the half and half or it can split.
Taste and adjust salt at the end. The parmesan adds salt too.
If making ahead, store the gnocchi separately so it doesn't over soften.