public function getDescendantsAndSelf($columns = ['*']) { if (is_array($columns)) { return $this->descendantsAndSelf()->get($columns); } $arguments = func_get_args(); $limit = intval(array_shift($arguments)); $columns = array_shift($arguments) ?: ['*']; return $this->descendantsAndSelf()->limitDepth($limit)->get($columns); }