Heat 2 1/4 cups of water and salt it. The water should taste salty enough to your tastebuds. When the water boils, add the drained, soaked rice to it.
Cook until the water boils. Cover, lower heat to the lowest setting, and let the rice cook for another five minutes. Turn off the heat and let it stand undisturbed.
While the rice is cooking, heat the oil in a large pot.
Add the shahjeera, cloves, cardamom pods, bay leaves and cinnamon stick and saute around 30 seconds.
Add the onions and saute until they start to brown.
Add the ginger, garlic, and green chili. Saute for a few seconds, then add the mint and coriander leaves and saute a little longer.
Add the peanuts and saute for a minute.
Add the tomatoes, biryani masala and turmeric and let the tomatoes cook until they start to release their juices.
Add the coconut milk and lemon juice, stir well, and add the spinach. Stir to mix well, cover, and let the spinach cook about five minutes. It will release some liquid, but that's okay.
Remove the lid and let the pot simmer over a medium-high flame for about five minutes, so some of the liquid evaporates. Add salt to taste. The spinach should be well-seasoned at this point because it's difficult to add salt to a biryani at the end.
Turn the heat to low and, using a ladle, scoop out the rice on top of the spinach. Spread in an even layer.
At this point you can sprinkle on some fried onions on the rice. This is a delicious addition, but if you don't want to do it, that's okay too.
Cover the pot with a tight-fitting lid and let it all cook for 10 minutes over medium-low heat.
Turn off the heat, let the biryani stand for 10 more minutes, then serve hot with some poppadum or pickle and vegan raita.