public function isCacheable(): bool
    {
        if (! \in_array(
            $this->statusCode,
            [
                StatusCode::OK,
                StatusCode::NON_AUTHORITATIVE_INFORMATION,
                StatusCode::MULTIPLE_CHOICES,
                StatusCode::MOVED_PERMANENTLY,
                StatusCode::FOUND,
                StatusCode::NOT_FOUND,
                StatusCode::GONE,
            ],
            true
        )
        ) {
            return false;
        }

        if (
            $this->hasCacheControl('no-store')
            || $this->hasCacheControl('private')
        ) {
            return false;
        }

        return $this->isValidateable() || $this->isFresh();
    }