'dashboard', 'description' => 'Dashboard', 'bits' => 511, 'children' => [] ], [ 'scope' => 'config', 'description' => 'Configurações', 'bits' => 271, 'children' => [ [ 'scope' => 'config.user', 'description' => 'Configurações de Usuários', 'bits' => 271, 'children' => [] ], [ 'scope' => 'config.permission', 'description' => 'Configurações de Permissões', 'bits' => 271, 'children' => [] ], [ 'scope' => 'config.city', 'description' => 'Configurações de Cidades', 'bits' => 271, 'children' => [] ], [ 'scope' => 'config.country', 'description' => 'Configurações de Países', 'bits' => 271, 'children' => [] ], [ 'scope' => 'config.state', 'description' => 'Configurações de Estados', 'bits' => 271, 'children' => [] ], ], ], ]; $this->createPermissionsAndChildren(permissions: $permissions); } private function createPermissionsAndChildren(array $permissions, ?int $parent_id = null): void { foreach ($permissions as $permission) { if ($parent_id != null) { array_merge($permission, [ 'parent_id' => $parent_id, ]); } $permissionDb = $this->permissionService->store(permissionDTO: PermissionDTO::fromArray(data: (array) $permission)); if (!empty($permission['children'])) { $this->createPermissionsAndChildren(permissions: $permission['children'], parent_id: $permissionDb->id); } } } }