code: public function next(ServerRequestInterface $request) : ResponseInterface
      {
          if (! isset($this->providerStack[$this->index])) {
              throw new \LogicException('There is no next middleware');
          }
  
          // get the next one
          $mw = $this->providerStack[$this->index]();
  
          if (! $mw instanceof ServerMiddleware && ! is_callable($mw)) {
              throw new \LogicException("The middleware at #{$this->index} is not of type ServerMiddleware and is not callable.");
          }
  
          return $mw->handle($request, $this->nextFrame());
      }
docs: @param ServerRequestInterface $request
  
  @return ResponseInterface