Heat oil in a medium pan. Add onions and cook for 4 to 5 minutes on medium high heat stirring frequently. Place a lid on the pan to speed up cooking. Add ginger and garlic cook for a minute. Add tomatoes and mix well. Cook for 2 to 3 minutes or until tomatoes become soft. Add 2 tablespoons of Shan spice mix. Tip - You can add more spice seasoning in the end after mixing in the tofu for a spicier keema. Lower the heat.
Stir in tofu and break it in with a spatula so that it's ground and crumbly. Add salt and cook for 1 to 2 minutes. Turn the heat off. Garnish with cilantro.
To serve:
Cut the bottom stem of the lettuce so the leaves can be easily separated. If using iceberg lettuce, it is ok if each leaf gets broken into 3 to 4 pieces. Just layer 2 to 3 over each other to form a cup.
Add 2 to 3 spoons of tofu keema on the lettuce cups. Garnish with purple cabbage, carrots, and cilantro. Add a squeeze of lime. Add a spoonful of raita and serve.