public function run()
    {
        return call_user_func(
            array_reduce(
                array_reverse($this->pipes),
                $this->createPipelineCallback(),
                function ($request) {
                    return ($this->callback === null) ? $request : call_user_func($this->callback, $request);
                }
            ),
            $this->request
        );
    }