Press and tear the tofu, if you haven't already. Then, add it to a bowl along with the ginger-garlic paste and yogurt. Toss to coat. Mix the spices and cornstarch in a small bowl and sprinkle all over. Toss again to coat the tofu really well.
Heat 1 teaspoon of the oil in a large skillet over medium-high heat. Once hot, add the tofu and cook for 8 to 10 minutes. Stir and flip occasionally to crisp all of the edges. Remove the tofu from the skillet, and set it aside. If you're baking the tofu, just transfer the coated tofu to a parchment-lined baking sheet and bake at 400° F (205° C) for 20 to 25 minutes.
Add the remaining teaspoon of oil to the same skillet over medium heat, then add the whole spices and cook for a minute, or until the cloves and black cardamom are fragrant. (Reserve a few peppercorns for garnish later optional )
Mix in the onion and ¼ teaspoon salt and cook for 7 to 9 minutes, until the onion is golden. Add splashes of water, to help the onion cook evenly..
Then, mix in the ginger-garlic paste, garam masala, and Kashmiri chili powder. Cook for 10-15 seconds. Then, add the tomato paste, almond flour, and nondairy yogurt, and mix very well. Now, mix in the non-dairy milk and another ¼ teaspoon salt.
Cover the pot with the lid and bring to a boil. Once the mixture is boiling evenly, open the lid taste and adjust salt and flavor, and continue to simmer covered for another 5 minutes. Then, fold in the tofu and remove the pan from the heat.
Garnish with cilantro (and reserved toasted peppercorns) and serve with naan, roti, or rice.Store refrigerated for upto 3 days. Freeze for upto 2 months. Reheat in a skillet or microwave.
