If using dried beans, place them in a large pot and cover generously with cold water. Add the crushed garlic, bay leaves, and kombu for extra depth of flavor. Bring to a boil, then reduce the heat and let them simmer for 60-90 minutes, or until tender. Once cooked, remove the bay leaves and kombu, then scoop out half the beans and set them aside.
Puree the remaining beans along with some of the cooking liquid until you achieve a smooth, loose consistency. Add extra water if needed to adjust the texture. If using tinned beans, drain half and puree the rest with their liquid.
In a large pot, heat the olive oil over medium heat. Add both types of onions and sauté for about six to seven minutes until softened. Stir in the carrots, celery, and a pinch of salt, cooking for another five minutes until the vegetables soften. If using tinned beans, finely chop the garlic and add it at this stage.
Sprinkle in the fennel seeds and chilli flakes, if using, and cook for an additional minute to enhance their aroma. Add the leek, winter squash, and cavolo nero, stirring well to coat them in the fragrant mixture. Cover the pot and let the vegetables cook, stirring occasionally, until they soften and wilt.
Pour in the chopped tomatoes, pureed beans, and parmesan rind. If necessary, add 150-250ml water or stock, depending on how thick or soupy you prefer the ribollita. Stir well, cover the pot, and allow the soup to gently simmer for about 40 minutes until the vegetables are tender and the flavors meld beautifully.
Stir in the reserved whole beans and torn bread, letting the mixture cook until the bread becomes soft and absorbs the broth. Adjust seasoning with salt and black pepper to taste.
For added texture, drizzle with extra-virgin olive oil and place the pot under a hot grill until the top turns crisp, or simply serve as is. Finish with a generous sprinkle of grated cheese and a handful of fresh spring onions, if using. Serve warm and enjoy!