Heat olive oil in a large soup pot over medium heat. Add the onion and a pinch of salt and sauté for about 5-7 minutes – until they are translucent. Add in the garlic, oregano, thyme, and red pepper flakes (if using) and sauté for another minute or two when the onions just begin to brown.
Next, add the celery, carrot, and tomatoes and sauté for another 5 minutes. Add the white wine to deglaze and cook for about 5 more minutes until the wine has reduced slightly.
Next, add the vegetable broth, cannellini beans, bay leaf, salt, and pepper. Mix until coated then bring to a boil then reduce heat to low and simmer for about 30 minutes to let flavors meld.
When the 30 minutes is up, ladle half of the soup into a high-speed blender (or a regular one will do) making sure to remove the bay leaf first. Start on a low speed and slowly work up to high so the hot soup doesn’t splatter. Blend the soup until smooth. Return the pureed soup back to the pot mix together and adjust seasoning to taste.
Top with chopped fresh herbs such as basil and/or parsley. You can also add a tablespoon or two to the soup when you’re pureeing for additional flavor.