$data */ public static function fromArray(array $data): self { return new self( label: $data['label'], url: $data['url'], location: MenuLocation::from($data['location']), type: MenuType::from($data['type']), parentId: $data['parent_id'] ?? null, orderIndex: $data['order_index'] ?? 0, isActive: $data['is_active'] ?? true, ); } /** * @return array */ public function toArray(): array { return [ 'label' => $this->label, 'url' => $this->url, 'location' => $this->location->value, 'type' => $this->type->value, 'parent_id' => $this->parentId, 'order_index' => $this->orderIndex, 'is_active' => $this->isActive, ]; } }