private function chainUpdate($node) { if (count($node->children) > 0) { $ids = []; foreach ($node->children as $n) { array_push($ids, $n->id); } $dpt = getDepth($node->id); $data = ['parent_id' => $node->id, 'depth' => $dpt['depth'], 'thread' => $dpt['thread']]; \App\Node::whereIn('id', $ids)->update($data); foreach ($node->children as $n) { if (count($n->children) > 0) { $this->chainUpdate($n); } } } }