private function fireCallbacks($name, Closure $modifier = null, Closure $caller = null)
    {
        $list = collect($this->{$name . 'Callbacks'});
        if ($modifier) {
            $list = call_user_func_array($modifier, [ $list ]);
        }
        $caller = $caller ?: function (Closure $callback) {
            $callback->bindTo($this);
            $callback($this->app);
        };
        $list->pluck('callback')->each($caller);
    }