Heat the oven to 190°C/gas 5.
Heat the olive oil in a large, heavy-based roasting tin directly over a medium heat. Add the onions, shallots, carrots and parsnips and cook for about 10 minutes until golden, stirring frequently. Add the garlic, chilli, paprika, cinnamon, coriander, cumin and cardamom and stir well, coating the vegetables in all the spices. Cook for a further 4 minutes then remove from the heat and stir in the saffron, courgettes, tomatoes and seasoning. Transfer to the oven to roast for 40 minutes. Check after 30 minutes, adding a little water or vegetable stock if desired.
Place the couscous in a large bowl and cover with boiling water to a level of 2.5cm above the grains. Mix well and leave to stand for 5 minutes. Meanwhile, melt the butter in a small saucepan, add the chopped herbs and cook for 1 minute. Pour over the couscous, mix well and season it.
Take the vegetables out of the oven, drizzle with olive oil and balsamic vinegar, and serve with the couscous.