$this->id, 'first_name' => $this->first_name, 'last_name' => $this->last_name, 'full_name' => $this->full_name, 'email' => $this->email, 'timezone' => $this->timezone, 'locale' => $this->locale, 'avatar' => $this->avatar, 'email_verified_at' => $this->email_verified_at?->toIso8601String(), 'organisations' => $this->whenLoaded('organisations', fn () => $this->organisations->map(fn ($org) => [ 'id' => $org->id, 'name' => $org->name, 'slug' => $org->slug, 'role' => $org->pivot->role, ]) ), 'app_roles' => $this->getRoleNames()->values()->all(), 'permissions' => $this->getAllPermissions()->pluck('name')->values()->all(), 'portal_events' => $this->whenLoaded('persons', fn () => $this->persons->map(fn (Person $person) => [ 'event_id' => $person->event_id, 'event_name' => $person->event->name, 'event_slug' => $person->event->slug, 'organisation_name' => $person->event->organisation->name, 'person_id' => $person->id, 'person_status' => $person->status, 'start_date' => $person->event->start_date?->toDateString(), 'end_date' => $person->event->end_date?->toDateString(), ]) ), ]; } }