protected function dispatch(Request $request, Exception $exception)
    {
        if (property_exists($this, 'catchers') == false) {
            throw new RuntimeException('No handlers defined to dispatch the exception on.');
        }

        $type = get_class($exception);

        if (property_exists($this, 'blacklist')) {
            if (in_array($type, $this->blacklist)) {
                return $this->unhandled($request, $exception);
            }
        }

        foreach ($this->catchers as $handler => $exceptions) {
            $exceptions = is_array($exceptions) ? $exceptions : [$exceptions];

            if (in_array($type, $exceptions)) {
                return $this->container->make($handler)->handle($request, $exception);
            }
        }

        return $this->unhandled($request, $exception);
    }