In a large soup pot, heat 1 tablespoon of olive oil over medium heat.
Add the Italian sausage (break it up into smaller pieces with a spoon) and cook until browned and fully cooked, about 6-8 minutes. Remove the sausage from the pot and set aside. Drain excess fat if needed, leaving about a tablespoon.
Sauté Vegetables:
In the same pot, add the remaining tablespoon of olive oil.
Add the chopped onion, diced carrot, and celery (and potato, if using). Cook, stirring occasionally, for about 5-7 minutes until the vegetables begin to soften.
Add the minced garlic and cook for another 1-2 minutes until fragrant.
Simmer the Soup:
Pour in the chicken broth and bring to a boil. Once boiling, lower the heat and let it simmer for about 10 minutes, or until the vegetables are tender (and the potatoes, if added, are cooked through).
Add the cooked sausage back into the pot. Stir in the dried basil, oregano, salt, and pepper.
Make it Creamy:
Reduce the heat to low and stir in the heavy cream and milk. Let the soup simmer for another 5 minutes to allow the flavors to meld together.
Add the grated Parmesan cheese and stir until it’s fully melted and the soup becomes creamy.
Add the Spinach:
Stir in the baby spinach and cook for another 2-3 minutes, just until the spinach is wilted and incorporated into the soup.
Taste and Adjust:
Taste the soup and adjust seasoning as needed, adding more salt, pepper, or cheese for extra flavor.