public function store() { try { $role = new Role(); $permissions = new Collection(Input::get('permissions', [])); if (Input::has('permissions')) { $permissions = $permissions->filter(function ($id) { if (is_numeric($id)) { return true; } })->map(function ($id) { return (int) $id; }); } $v = Validator::make(Input::all(), ['role_name' => Role::$rules['name']]); if ($v->fails()) { return Redirect::route('admin.site.roles.create')->withErrors($v)->withInput(); } $role->name = trim(Input::get('role_name')); $role->save(); // Update role permissions $role->permissions()->sync($permissions->toArray()); return Redirect::route('admin.site.roles.edit', [$role->id])->with('messages', ['Role Created!']); } catch (ModelNotFoundException $e) { return Redirect::route('admin.site.roles.index'); } }