Prepare all the soup ingredients.
In a pan, dry fry the onion and ginger until slightly charred. Wash off any overly burnt parts. Note: Do not break up the onion into its layers.
In the same pan on medium heat, toast the spices until fragrant. Put the toasted spices in a cheesecloth / chux cloth or a spice bag and tie it up. Please refer to the picture above for examples.
Bring 2.5 L of water to the boil in a stock pot on high and add the chicken breast side down, the rest of the soup ingredients and the spice bag.
Once the water comes back to the boil, turn the temperature down to low and simmer for 50 minutes. Put two chopsticks in between the lid and the pot so that there a gap (please refer to the picture above for examples). Skim the soup as scum builds up on the surface.
After 50 minutes, take the chicken out and push a chopstick deep into the chicken breast and few other parts to see if any blood runs out. If the juices run clear, the chicken is cooked. Place it in a large bowl of cold water for (approx. 10 minutes) to prevent it cooking further.If the chicken is still raw, cook for another 10 minutes or until done.
Let the soup cook for another 30 minutes.
While the soup is cooking, wash / dry / prep all your garnishes, fresh herbs and vegetables.
Once the chicken is cool enough to touch, tear it into chunks. Keep the chicken pieces in a closed container until needed.
Strain the soup. Squash the vegetables against the strainer with a spoon to extract as much liquid as possible and then discard.
Add 3 tbsp of fish sauce and chicken bouillon powder (if using) and taste check. Adjust the soup to your preference. Note - the soup should be on the salty side.
Turn down the heat on the soup pot to low and put on the lid with a small gap. Leave until needed.