Cut chicken into 1-inch pieces, pat dry, season with salt, pepper, and Italian seasoning. Dice onion, carrots, and celery, mince garlic, measure wine and broth, zest lemon, and grate Parmesan.
Heat olive oil in a Dutch oven over medium-high heat. Add seasoned chicken in a single layer and cook 3-4 minutes until golden, flip and cook 2-3 minutes more. Transfer chicken to a plate.
Reduce heat to medium, melt butter in the same pot. Add onion, carrots, and celery, scraping up browned bits. Cook 5-6 minutes until onion is translucent and vegetables soften. Add garlic, Italian seasoning, thyme, and cayenne, cook 1 minute until fragrant.
Pour in white wine, simmer 2 minutes while stirring to deglaze the pot. Allow the liquid to reduce and the alcohol to mellow.
Add chicken broth and bring to a gentle boil. Return seared chicken and any juices to the pot. Reduce heat to medium-low and simmer 10-12 minutes until chicken reaches 165°F / 74°C.
Reduce heat to low so soup is no longer boiling. Slowly pour in heavy cream while stirring continuously. Simmer gently 3-4 minutes to meld flavors.
Add fresh baby spinach and stir until wilted, about 1-2 minutes. Remove from heat, add grated Parmesan in small batches while stirring. Stir in lemon zest if using. Taste and adjust seasoning.
Ladle into bowls, garnish with extra Parmesan and black pepper. Serve immediately with crusty bread or a simple salad.