public function resolve($response = null): self
    {
        if ($this->exception instanceof \Throwable) {
            throw $this->exception;
        }

        if ($this->mustBeResolved($response)) {
            $this->value = $response;
        }

        $this->locked = false;

        return $this;
    }