*/ final class PersonIdentityMatchFactory extends Factory { protected $model = PersonIdentityMatch::class; /** @return array */ public function definition(): array { return [ 'person_id' => Person::factory(), 'matched_user_id' => User::factory(), 'matched_on' => IdentityMatchMethod::EMAIL, 'confidence' => IdentityMatchConfidence::HIGH, 'status' => IdentityMatchStatus::PENDING, 'match_details' => null, 'resolved_by_user_id' => null, 'resolved_at' => null, ]; } public function confirmed(): static { return $this->state(fn () => [ 'status' => IdentityMatchStatus::CONFIRMED, 'confirmed_by_user_id' => User::factory(), 'confirmed_at' => now(), 'resolved_by_user_id' => User::factory(), 'resolved_at' => now(), ]); } public function dismissed(): static { return $this->state(fn () => [ 'status' => IdentityMatchStatus::DISMISSED, 'dismissed_by_user_id' => User::factory(), 'dismissed_at' => now(), 'resolved_by_user_id' => User::factory(), 'resolved_at' => now(), ]); } public function fuzzyName(): static { return $this->state(fn () => [ 'matched_on' => IdentityMatchMethod::NAME_FUZZY, 'confidence' => IdentityMatchConfidence::MEDIUM, ]); } public function manual(): static { return $this->state(fn () => [ 'matched_on' => IdentityMatchMethod::MANUAL, 'confidence' => IdentityMatchConfidence::HIGH, 'status' => IdentityMatchStatus::CONFIRMED, 'confirmed_by_user_id' => User::factory(), 'confirmed_at' => now(), 'resolved_by_user_id' => User::factory(), 'resolved_at' => now(), ]); } }