Place oil in a wok or large frying pan over medium-high heat. Add garlic, galangal (or ginger), chilli, and shallots. Stir-fry one minute, or until fragrant. Stir-frying tip: add a tablespoons water whenever the wok/pan gets too dry instead of more oil.
Add tofu (or meat/shrimp), carrot, shiitake mushrooms, cabbage, and spring onions.
As you stir-fry, add the lime juice, soy sauce, fish sauce, and oyster sauce. Stir-fry about 1 minute.
Push ingredients to the side of the wok or pan, and crack in the egg. Stir-fry the egg quickly, breaking the yolk. Mix in with the other ingredients.
Add the bean sprouts and stir-fry briefly (to mix). Remove from heat and do a taste test for salt, adding 1 Tbsp more fish sauce if not salty enough.
Cut off the stem part of the iceburg lettuce so it's easier to separate the leaves. Now place the lettuce, the sir-fried filling, and the toppings on your table, allowing family or guests to make their own wraps.
To assemble wraps, take a whole lettuce leaf and place 1-2 heaping tablespoons of filling in the center. Top with a sprinkling of fresh basil and peanuts. Then wrap it up and eat. (For those who like it extra spicy, Thai chilli sauce can be added as another topping.).