Cook the rice in a saucepan of boiling water for 5 minutes. Drain in a colander, run under cold water, then drain again. Spread out the rice on a plate so that it dries out a little.
Heat 2 tablespoons of the oil in a frying pan over a medium heat. Add half the onion and fry for 10 minutes until very crisp and golden. Remove and set aside to drain on kitchen paper. Add the rest of the oil to the frying pan, and fry the rest of the onion and ginger for 5 minutes until the onion is soft and translucent, adding the garlic for the last minute of the cooking time. Add the sweet potatoes, carrots, curry paste and spices and fry for another 10 minutes until light golden.
Pour in the stock and add the tomatoes. Bring to the boil, reduce the heat, cover and simmer for 20 minutes. Add the cauliflower and peas, if liked, and cook for 8–10 minutes until the vegetables are tender. Check the seasoning and add salt and pepper if needed.
Mix in the rice and cashew nuts. Cook, stirring, for 3 minutes, then cover and remove from the heat. Leave to stand for 5 minutes, then serve sprinkled with the crispy-fried onions and topped with the hard-boiled eggs.