public function macro($name, Closure $callback)
{
$this->macros[$name] = $callback;
}
public function newEloquentBuilder($query) { $builder = new Builder($query); $builder->macro('key', function (Builder $builder) { return $builder->getQuery()->key(); }); $builder->macro('flush', function (Builder $builder) { return $builder->getQuery()->flush(); }); return $builder; }