Bring the listed 2½ cups water or vegetable broth to a boil. Add the rice, cloves, cardamom pods, bay leaf and salt to taste. Return to a boil, then reduce to a simmer and cover. Cook about 8 minutes, or until the rice is about 90 percent cooked and has absorbed the water. Turn off the heat. Do not drain.
Place the tofu, lemon juice, ginger, garlic, green chili peppers, chopped onion and coriander leaves in a blender and grind to a fairly smooth paste.
Drain the seitan and place it in a bowl. Pour the tofu-ginger-garlic marinade over it and toss with a spoon till all the pieces are thoroughly coated. Cover and refrigerate for at least an hour.
Heat the oil in a skillet. Add the sliced onions and cook over medium-high heat, stirring frequently, until they are golden-brown and caramelized, about 10 minutes.
Remove half the onions to a bowl and reserve. To the remaining onions, add the garam masala, turmeric and chilli powders and stir well for a few seconds. Add the tomato puree.
Saute until the tomato turns darker and begins to express oil.
Add the seitan along with the marinade, stir together well, bring to a boil. Then lower the heat to low and allow the mixture to simmer for about 15 minutes or until the flavors have merged well. Add salt to taste.
Spread the cooked rice on top of the gravy in an even layer.
Close the skillet with a tight-fitting lid, ensure the heat is still turned to low, and allow the biryani to cook another 10 minutes. If you like some additional color in your biryani, mix 2 tablespoon of non-dairy milk with a few strands of saffron or a generous pinch of turmeric and sprinkle on top of the rice before putting on the lid.
Turn off the heat and allow the biryani to stand at least 10 minutes before opening. Garnish with the fried onions you had reserved and the coriander leaves. I also love sauteing a few cashew nuts and raisins in a smidgen of oil until the raisins are plumped up and the nuts golden, and then sprinkling them on top of the biryani for a fabulous final touch.