$this->id, 'event_id' => $this->event_id, 'name' => $this->name, 'email' => $this->email, 'phone' => $this->phone, 'status' => $this->status, 'is_blacklisted' => $this->is_blacklisted, 'admin_notes' => $this->admin_notes, 'custom_fields' => $this->custom_fields, 'created_at' => $this->created_at->toIso8601String(), 'crowd_type' => new CrowdTypeResource($this->whenLoaded('crowdType')), 'company' => new CompanyResource($this->whenLoaded('company')), 'pending_identity_match' => $this->when( $this->relationLoaded('pendingIdentityMatch') && $this->pendingIdentityMatch, function () { $match = $this->pendingIdentityMatch; return [ 'match_id' => $match->id, 'matched_user' => [ 'id' => $match->matchedUser->id, 'name' => $match->matchedUser->name, 'email' => $match->matchedUser->email, ], 'matched_on' => $match->matched_on->value, 'confidence' => $match->confidence->value, ]; } ), 'tags' => $this->when( $this->user_id && $this->relationLoaded('user'), function () { $orgId = $this->event?->organisation_id; if (!$orgId || !$this->user) { return []; } return UserOrganisationTagResource::collection( $this->user->organisationTags() ->where('organisation_id', $orgId) ->with('personTag') ->get() ); }, [] ), ]; } }