Drizzle oil into a wok or large frying pan over medium-high heat. Add garlic, galangal (or ginger), chili, and shallots. Stir-fry one minute, or until fragrant. Stir-frying tip: add a Tbsp. water whenever the wok/pan gets too dry instead of more oil.
Add tofu (or shrimp/chicken/pork), 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 quickly to break 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, sir-fried filling, and the toppings on your table in separate bowls/plates, allowing family or guests to make their own wraps.
To assemble, 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 up and eat! (For those who like it extra spicy, Thai chilli sauce can be added as another topping.)