Once boiling, add rice and cook for 20 minutes, or until tender. Drain, then return to pan. Cover and set aside.
Pick coriander leaves and finely chop stalks. Peel and finely chop onion, then chop everything together.
Heat 1 tablespoon of oil in a large saucepan over medium heat. Add onion and coriander and fry for 10 minutes, or until golden brown. Add curry paste and stir, frying for 1 minute.
Cook gently, while you wash and chop potatoes into 2cm chunks. Finely chop tomatoes, then add to pan with the potato and enough hot water to almost cover them. Cover pan and cook for 15 minutes, or until almost soft.
Trim and pick lettuce leaves, then put aside. Peel and crush garlic, halve and deseed chilli, then chop together.
Test potatoes with the tip of a sharp knife – if they’re nearly tender, remove lid, increase heat and cook for 5 minutes, until thickened.
Heat 2 tablespoons of oil in a pan over medium heat. Add cumin seeds, garlic and chilli, then fry gently for 1 minute, or until golden.
Add spinach to the potato, cover and reduce heat to medium. Cook for 2 minutes, or until spinach has wilted. Add half the chilli oil and stir through.
Taste and season. Divide the rice and curry between plates. Scatter with coriander and serve with lettuce leaves and yoghurt, drizzling chilli and garlic oil over everything just before you eat.