Make the rice by placing the water in a pot along with the cardamom and bay leaves. Bring it to a boil, then turn the heat down to a simmer. Cover and let the rice cook 10 minutes. Turn off and let stand.
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. Set aside 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.
Take the cooked rice and gently spread it 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 soymilk 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.