Heat the oil in a paella pan or other large, heavy-based pan and fry the shallots and garlic gently for 4–5 minutes to soften. Add the eggplant and fry over a medium heat, stirring occasionally, until beginning to brown.
Add the capsicum pieces and stir for a further 2–3 minutes, then stir the rice into the pan, turning to coat evenly. Add about half the stock and bring to the boil, stirring.
Partially cover the pan and cook on a low heat, stirring occasionally, for 25–30 minutes, until the rice is beginning to swell. Add a little more stock to moisten then stir in the zucchini and mushrooms. Continue to cook, uncovered, for 20–30 minutes, adding more stock as necessary until the rice is tender and the stock is absorbed. (You might not need all the stock as there will be some variation in absorption depending on the diameter of the pan used and the degree of heat.)
Stir lightly and test the rice by tasting a grain — the grains should be tender with just a slight firmness in the centre. Stir in the tofu and tarragon, if using, then warm through and season to taste. Serve hot.