>} */ public function check(): array { $statuses = []; $hasError = false; /** @var ProviderInterface $provider */ foreach ($this->providers as $provider) { $status = $provider->probe(); $statuses[$status->name] = $status->toArray(); if ($status->status === ProviderStatusType::Error) { $hasError = true; } } return [ 'status' => $hasError ? 'degraded' : 'ok', 'providers' => $statuses, ]; } }