Melt butter in a soup pot or a dutch oven. Add chopped onion, celery, and garlic. Cook for a minute.
Add chopped carrot and saute for a couple of minutes. The veggies would be softened by now.
Add crushed tomato, tomato paste, basil, salt, pepper, sugar, rosemary sprig, bay leaf, and stock to the pot. Stir everything well. Once it comes to a boil, simmer for 5 minutes.
Stir in 1/2 cup of white beans to the pot. Using a hand blender blitz everything until smooth.
Stir in the rest of the bean, grated parmesan to the soup. Give everything a good mix.
Serve with bread.
Notes
If the soup is too tart because of tomatoes, add an additional 1/2 teaspoon of sugar to balance the sourness.
I like to add 1/4 teaspoon of chilli flakes to the soup for an extra kick.
You can add a handful of spinach or kale towards the end while adding parmesan cheese.