**If you’re using dried beans, soak them overnight**
Put the soaked beans in a large pan, cover generously with cold water and add the garlic and bay. Bring to a boil, then simmer for an hour or so until soft. Turn off the heat. Scoop out half the beans and set aside.
Use a stick blender to puree the remaining beans and enough of their cooking liquid to make a thin puree, adding more liquid if necessary. (If using tinned beans, scoop out half, then puree the rest with the liquid from the can.)
Put the oil in a large pan on a medium heat. Saute the onions, stirring, for 6-7 mins until they soften. Add the carrot, celery, a pinch of salt, and cook for 5 mins more, until soft. If you’re using tinned beans, finely chop the garlic and stir it into the pan.
Stir in the fennel seeds and chilli flakes, cook for a minute. Add the leek, squash and cavolo nero, stir well. Cover and cook, stirring occasionally, until limp.
Tip in the tomatoes, pureed beans and cheese rind, adding 150-250ml water or stock, if necessary, depending on how liquid the puree is and how soupy you want your ribollita. Cover and leave to bubble for about 40 mins, or until the veg are cooked to your taste.
Stir in the remaining cooked beans and the bread. Cook until bread is soft, then season soup to taste.
Drizzle with extra-virgin olive oil and pop under a hot grill until crisp on top, or serve just as it is. Top with grated cheese and/or chopped parsley.