@php $filterMenu = function ($menus, $permissions) { $filtered = []; foreach ($menus as $section => $items) { $filteredItems = []; foreach ($items as $item) { if (isset($item['submenu']) && is_array($item['submenu'])) { $item['submenu'] = array_filter($item['submenu'], function ($subItem) use ($permissions) { return !isset($subItem['permission']) || count(array_intersect($subItem['permission'], $permissions)) > 0; }); if (!empty($item['submenu'])) { $filteredItems[] = $item; } } else { if (!isset($item['permission']) || count(array_intersect($item['permission'], $permissions)) > 0) { $filteredItems[] = $item; } } } if (!empty($filteredItems)) { $filtered[$section] = $filteredItems; } } return $filtered; }; $menusArray = json_decode(json_encode($menus), true); $filteredMenus = $filterMenu($menusArray, $permissions); $menus = json_decode(json_encode($filteredMenus)); @endphp