self::APPROVED, 'Declined' => self::DECLINED, 'In Review', 'Resubmitted' => self::IN_REVIEW, 'Not Started', 'In Progress', 'Awaiting User' => self::PENDING, 'Abandoned', 'Expired' => self::NOT_STARTED, 'Kyc Expired' => self::EXPIRED, default => self::PENDING, }; } public static function diditTerminalStatuses(): array { return ['Approved', 'Declined', 'In Review', 'Abandoned']; } public function isFinished(): bool { return in_array($this, [self::APPROVED, self::DECLINED, self::IN_REVIEW], true); } public function allowsNewAttempt(): bool { return in_array($this, [self::NOT_STARTED, self::DECLINED, self::EXPIRED], true); } public function label(): string { return match ($this) { self::NOT_STARTED => __('identity_verification.status.not_started'), self::PENDING => __('identity_verification.status.pending'), self::APPROVED => __('identity_verification.status.approved'), self::IN_REVIEW => __('identity_verification.status.in_review'), self::DECLINED => __('identity_verification.status.declined'), self::EXPIRED => __('identity_verification.status.expired'), }; } }