Peel and roughly slice the carrots, slice celery, chop onions, peel and slice garlic.
Put a large pot on medium heat and add 2 tablespoons of olive oil
Add all chopped and sliced ingredients and mix together with a wooden spoon.
Cook for around 10 to 15 minutes with the lid askew, until the carrots have softened but are still holding their shape, and the onion is lightly golden.
Drain the beans, break up the cauliflower and broccoli into small florets.
Roughly chop the spinach, quarter the tomatoes, removing any stalks. Pour in stock then add the cannellini beans, cauliflower, brocoli, quartered tomatoes, and the can of diced tomatoes.
Give the soup a good stir and bring to a boil, reduce head and simmer for 10 minutes with the lid on.
Add the spinach to the pot and cook for a further 30 seconds, then remove the pot from the heat.
If you like your soup a little less chunky, you can take out half of it and blend it, then stir back into the pot.
Ladle the soup into serving bowls and finish with grated parmesan cheese and cracked pepper