Heat olive oil in a large pot over medium heat. Sauté onion until softened, about 4 minutes.
Add garlic, sun-dried tomatoes, Italian seasoning, and red pepper flakes. Cook for 1 minute.
Pour in the chicken broth and add the cannellini beans.
Simmer for 15 minutes.
Blend about one-third of the soup for a creamier texture, then return it to the pot.
Stir in heavy cream, Parmesan, and spinach.
Cook for 3-5 minutes until the spinach wilts.
Season with salt and black pepper.
Garnish with fresh basil and extra Parmesan before serving.