Start by heating olive oil and butter in a large pot over medium heat. Once melted, add the diced onion and cook until it softens and becomes fragrant. Stir in the garlic and cook briefly until aromatic.
Add the sausage to the pot and break it apart as it cooks. Let it brown fully, which adds great flavor to the soup. If there’s extra grease, lightly drain it so the soup stays silky, not oily.
Stir in the crushed tomatoes and broth, mixing well. Bring the mixture to a gentle boil, then reduce the heat and let it simmer so the flavors blend. This step helps develop richness before adding the ravioli.
Add the ravioli and cook until they float or turn tender, just a few minutes. Stir in baby spinach until wilted. Pour in the half-and-half, then add the grated Parmesan and stir gently. Taste and adjust seasoning with salt and pepper as needed.
Once everything is warmed through and perfectly creamy, ladle the soup into bowls. Top with extra Parmesan, fresh herbs, or a drizzle of olive oil. Serve immediately for the best texture and temperature