Heat a heavy bottomed soup pot over medium-low heat and add oil.
Add onions and mushrooms and cook until the onions and mushrooms have softened 5-8 minutes.
Add garlic and ginger, cook 1 minute.
Add broth and fish sauce. Turn heat up to high.
Add carrots and cauliflower. Bring to a boil.
Add broccoli, cabbage, zucchini and chicken if using.
Simmer 3-4 minutes until vegetables are just cooked through.
In a small bowl whisk together arrowroot and tamari or coconut aminos. Add to soup while stirring. Simmer 30 seconds.
Add the beaten eggs to the boiling pot, stirring to create ribbons. Cook about 1 minute.
Remove from heat and add vinegar, white pepper and tofu if using.
Add scallions, cilantro, saving a few for garnish.
Taste to adjust seasoning and serve immediately with additional scallions and cilantro as garnish.
