Heat a large pot over medium-high heat. Add the olive oil and once it is hot, add the onions and allow them to sauté for 3 to 4 minutes or until translucent, stirring occasionally. Add the garlic and sauté for 30 seconds.
Add the carrots and celery and sauté for 4 minutes, stirring occasionally.
Add the salt, thyme, rosemary, and red pepper flakes. Stir continuously for 30 seconds.
Add a splash of the vegetable stock to deglaze the bottom of the pot, then add the bay leaf, remaining vegetable stock, sun-dried tomatoes, white beans, and heavy cream. Stir to combine.
Turn the heat up to high and bring the soup to a low boil. Reduce heat and allow the soup to simmer for 15 minutes. Using the back of a ladle or large spoon crush the soup down to break some of the beans, about 15 to 20 times. This will thicken the soup.
Add the parmesan cheese and spinach and stir till the spinach is slightly wilted.
Remove the soup from the heat and top with optional fresh herbs. Serve immediately.