Mix the chicken with all the ingredients except for the butter/margarine or oil. Allow to marinate if possible for a minimum of 30 minutes (longer if possible, up to overnight is fine).
Heat half the butter/margarine or oil in the frying pan or tawa. Once melted, turn the heat to high and add in HALF of the marinated chicken (avoid adding the excess marinade, let it remain in the bowl). Stir-fry on high heat to make sure the chicken cubes are sealed so they remain moist and tender. As soon as all sides are sealed (takes about 3-5 minutes) turn the chicken out into a bowl and keep it covered.
Add the remainder of the butter/margarine or oil in the pan. When hot, add the remaining half of the marinated chicken. Repeat the same process, stir-fry on high heat for about 3-5 minutes.
Cooking the chicken in two batches helps maintain the heat of the pan on high thereby ensuring the chicken gets sealed quickly without loosing any excess moisture which will end up drying out the chicken. Cooking all of it in one go may sound easier but the temperature of the pan will drop immediately and the chicken will loose a lot of moisture.
Now, put back the first batch of cooked chicken into the pan with the second batch and mix all of it together. Turn the heat down to medium. Pour any leftover juices or marinade and all it to cook with the chicken for 2 minutes while stirring constantly. This will allow the chicken to have a slightly moist coating. Cover the pan, turn the heat down to low and allow to steam for another 2 minutes whilst covered to make sure everything is perfectly cooked. Adjust salt and spice to taste.
Turn off the heat and serve with accompaniment of your choice.