groups[] = $group; return $this; } $this->groups[] = NavigationGroup::make($group) ->items($items) ->collapsible($collapsible); return $this; } public function item(NavigationItem $item): static { $this->items[] = $item; return $this; } /** @param NavigationGroup[] $groups */ public function groups(array $groups): static { $this->groups = array_merge($this->groups, $groups); return $this; } /** @param NavigationItem[] $items */ public function items(array $items): static { $this->items = array_merge($this->items, $items); return $this; } public function getNavigation(): array { $navigation = collect(); $items = $this->items; if (count($items)) { $navigation->push( NavigationGroup::make()->items($items), ); } return $navigation ->merge($this->groups) ->all(); } }