Preheat a small skillet over medium heat. Add the whole hazelnuts and toast, shaking the skillet regularly, until golden patches appear and they release a nutty aroma. Transfer the toasted hazelnuts to a clean tea towel and bundle them up, rubbing vigorously with your hands to remove most of the skin. The skin is bitter, so removing as much as possible enhances the flavor. (If you use almonds, you can skip this skin-removing step.) Once skinned, roughly chop the hazelnuts to prepare them for the Picada.
In a jug or container just large enough to fit the head of a stick blender, combine the roughly chopped toasted hazelnuts from Step 1, chopped parsley, chopped garlic, 2 tablespoons of extra-virgin olive oil, and kosher or cooking salt. Blitz the mixture with a stick blender until you have a pesto-like paste—it should remain slightly chunky and not be completely smooth. Set aside; you’ll stir most of it into the soup and reserve a little for serving. I like to leave the Picada a bit coarse for more texture in each spoonful.
Heat 1 tablespoon of extra-virgin olive oil in a large heavy-based pot over medium heat. Add the minced garlic, finely chopped onion, chopped thyme, chopped rosemary, and the bay leaf. Cook, stirring regularly, for about 8 minutes or until the onions are deeply golden brown and sweet. This long, gentle sauté develops a rich flavor foundation for your soup.
Add the tomato passata to the onion and herb base from Step 3. Reduce the heat to low and cook for another 8 minutes, stirring occasionally, until the passata has thickened significantly and turns from watery red to a deep, dark brown. Don’t rush this part; it’s crucial for building an intense, savory flavor in the soup. Personally, I never skimp on this step—it's where the magic happens!
Stir the rinsed and drained cannellini beans into the thickened tomato base from Step 4, followed by the vegetable stock. Increase the heat if needed and bring to a very gentle simmer. Cook with the lid off for 15 minutes to allow flavors to meld and the broth to reduce slightly.
Transfer about 2/3 cup (150ml) of soup into a jug or jar just large enough for your stick blender. Blend until smooth, then pour this thickened portion back into the pot and stir. This gives the soup a creamy and hearty texture without adding cream. I sometimes add a splash of water if the soup gets too thick at this stage.
Just before serving, stir 2 tablespoons of the Picada (from Step 2) into the hot soup and taste to adjust the seasoning with more salt if needed. Ladle the soup into bowls and dollop each with 1 teaspoon of the reserved Picada. Enjoy immediately! I highly recommend serving this soup alongside plenty of crusty bread to soak up all the soup's wonderful flavors.