A 23-year-old man has been charged after allegedly punching a taxi driver in Baldivis.
The man allegedly started arguing with the driver during a taxi drive in the early hours of Saturday morning before punching him.
The taxi driver was able to stop the car at a service station on Leary Road in Baldivis before the man allegedly assaulted him again.
The victim fell to the ground where he was allegedly assaulted for a third time.
The 65-year-old driver was taken to Royal Perth Hospital by ambulance.
The accused man allegedly crossed the road to another service station where he threw food at staff and smashed an advertising screen.
The 23-year-old man from Falcon has been charged with aggravated robbery, aggravated assault with intent to do grievous bodily harm and robbery.
He is in custody and will appear in the Perth Magistrates Court tomorrow.

Pop-up ice skating rink glides back into Mandurah for winter school holidays
Federal opposition leader Angus Taylor sits down with local business owners in Mandurah
Police search for missing man last seen leaving Rockingham Hospital
West Aussies urged to be on high alert after surge in winter house fires
New $3.4 million boardwalk to be constructed at Lake Clifton thrombolites
City of Mandurah rolls out new tactile bin lids, accessibility stickers to support residents with low vision
Driver dies in hospital after Australind crash
Welfare concerns for woman with dementia last seen in Cooloongup
Charges laid over fatal West Coolup crash
