Heat the oil in a large saucepan. Peel and slice the onion and add to the saucepan, followed by the garlic. Cook for 2-3 minutes until starting to soften.
Chop the stalk off the broccoli, trim off its woody end, and peel off the outer skin. Chop the stalk finely and add to the pan. Chop the remaining head of broccoli into small florets and add to the pan.
Drain and rinse the cannellini beans and add to the pan. Pour in the vegetable stock, bring to the boil and simmer for 7-8 minutes until the broccoli is just soft. Season well with salt and pepper, then remove from the heat.
Add the spinach to the soup, then blitz it very thoroughly until completely smooth in a blender, food processor or with a hand blender - this may take a minute or two, so keep going! If the soup seems too thick, just add a little more water and blitz again.
Finely chop the basil, and mix it with the dairy-free yoghurt in a small bowl. Squeeze in the juice of half a lemon, mix well, then drizzle over the bowls of soup just before serving.