Preheat the oven to 200°C and line two large baking trays with baking paper.
Mix all the spice-rub ingredients in a medium-sized bowl.
Arrange the cauliflower and sweet potato separately on the first tray. Divide 3 tablespoons of the spice mixture between them and toss each vegetable separately to coat. Roast for 20 minutes.
Add the tofu to the bowl containing the remaining spice mixture and toss until evenly coated.
To make the limey cabbage, place the shredded cabbage in a bowl. Add a generous pinch of salt and the juice of half a lime. Scrunch briefly with your hands, then leave to soften.
Arrange the courgettes, pepper and tofu separately on the second tray. Drizzle lightly with olive oil and season with salt and pepper. Once the first tray has roasted for 20 minutes, add the second tray and roast both for another 20 minutes, or until everything is golden and tender. If using, toss the roasted tofu with the apple cider vinegar and season with additional salt if needed.
To make the harissa butter beans, add the olive oil, harissa, sun-dried tomato pesto, water, lime juice and salt to a small saucepan. Cook for 5 minutes, then add the drained butter beans and stir gently to coat. Cook for another 5 minutes. Taste and add more lime juice or salt if needed.
Divide the roasted vegetables, sweet potato, tofu and harissa butter beans between four bowls. Add the limey cabbage, avocado, kimchi and a spoonful of yoghurt. Finish with any optional toppings and serve.