Persimmon shakes off COVID impact with £784m profit