public function __invoke($error, Request $request, Response $response, callable $out)
{
// Decorate instances with Stratigility decorators; required to work
// with Next implementation.
$request = $this->decorateRequest($request);
$response = $this->decorateResponse($response);
$pipeline = $this->getInternalPipeline();
$done = $out ?: new FinalHandler([], $response);
$next = new Next($pipeline, $done);
$result = $next($request, $response, $error);
return $result instanceof Response ? $result : $response;
}