Cook the onion in the oil, in a deep saucepan with the cloves, cardamom pods, cinnamon stick, cumin seeds, and nigella seeds, if using, until the onion is slightly browned and soft. Keep the heat medium to low and stir frequently; this should take about 10 minutes.
Add the rice and move it about in the oily spiced onion until it is slicked and glossy, then pour in the stock and bring the pan to the boil. Cover the pan with a lid and cook over the lowest heat possible for 20 minutes.
Turn off the heat, take the lid off, cover with a tea towel and clamp the lid back on the saucepan. You can leave the rice to rest like this for at least 10 minutes, and up to about 1 hour. Fork the rice through when you are ready to serve it, scattering the toasted sliced almonds and cilantro on top.