A father of two is fighting for his life in hospital after a sickening one-punch attack outside a popular Perth restaurant.