Char the onion and ginger over a gas flame or hot dry pan until visibly black, 5-8 minutes.
Toast star anise, coriander, fennel, cinnamon, cloves and cardamom in a dry pan 2-3 minutes until fragrant. Tip into a spice bag or muslin cloth.
Blanch the bones: cover with cold water, bring to a rolling boil, boil hard 5 minutes. Drain, rinse bones under cold water, scrub the pot. This is the step that gives you clear broth. Don't skip.
Return clean bones to the clean pot. Add charred onion, ginger, spice bag and 4L cold water. Bring to a gentle simmer, skimming any foam.
Simmer 3-4 hours, lid off or ajar. Top up with water if it reduces below the bones. Don't boil hard, it muddies.
In the last 30 minutes, add fish sauce, sugar and salt. Taste and adjust.
Strain through cheesecloth or paper towel into a clean pot. Discard solids. You'll have ~3L of clear broth. Keep hot.
Just before serving, boil rice noodles in a separate pot 5-7 minutes. Drain.
Slice the beef paper-thin (freeze 20 minutes first to make this easier).
Build bowls fast: noodles at the bottom, raw beef on top, pour boiling hot broth over (it cooks the beef in 30 seconds), sprinkle spring onions.
Serve immediately with bean sprouts, herbs, chilli, lime, hoisin and sriracha on the side for guests to add.