user(); if (! $user || $user->type !== UserTypeEnum::CLIENT) { return $next($request); } $client = $user->client; if (! $client || ! $client->identity_verification_required) { return $next($request); } if ($client->identity_verification_status === IdentityVerificationStatusEnum::APPROVED) { return $next($request); } return response()->json([ 'payload' => [ 'identity_verification_status' => $client->identity_verification_status?->value, 'attempts_left' => $this->attemptsLeft($client->identity_verification_attempts), ], 'message' => __('identity_verification.client_not_verified'), ], 403); } private function attemptsLeft(?int $attempts): int { return max(0, (int) config('services.didit.max_attempts', 3) - (int) $attempts); } }