Heat half of the oil in a wok or skillet. Stir-fry the chicken in batches for 3-6 minutes or until they are brown and tender.
After, transfer the chicken to a plate lined with paper towels to drain the excess oil. Set aside.
Place the remaining oil in the wok or skillet and heat it. Sauté the garlic, ginger, onions and lime leaves for 3-5 minutes or until all the ingredients are soft and the mixture becomes fragrant. Add the mushrooms and the carrots. Stir-fry them for another 5 minutes or until the carrots are tender.
Return the chicken to the wok and add the stock, soy sauce, fish sauce and oyster sauce.
Add the bean sprouts. Cook it in low heat for 10-15 minutes until the sauce thickens and dries up a little. Remove from heat and stir in the basil. Season it with salt and pepper if desired.