public function edit($id) { try { $role = Role::with('users', 'permissions')->findOrFail($id); $permissions = []; foreach (Permission::all() as $permission) { if (preg_match('/^admin\\.([a-z]+)/A', $permission->name, $matches)) { // Uppercase the first letter $key = ucfirst($matches[1]); // Push to array $permissions[$key][$permission->id] = $permission->display_name; } else { // Push to array $permissions['General'][$permission->id] = $permission->display_name; } } $page_title = Lang::get('navigation.admin.site.items.roles.items.edit.title', ['name' => $role->name]); return View::make('admin.site.roles.edit', compact('role', 'permissions', 'page_title')); } catch (ModelNotFoundException $e) { return Redirect::route('admin.site.roles.index')->withErrors([sprintf('Role #%u doesn\'t exist.', $id)]); } }