<?php namespace Modules\User\Repositories; use Spatie\Permission\Models\Role; class RoleRepository implements RoleInterface { public function pluck() { return Role::pluck('name', 'id'); } public function findAll() { return Role::with('permissions')->get(); } public function getRoleById($roleId) { return Role::with('permissions')->findOrFail($roleId); } public function delete($roleId) { $role = self::getRoleById($roleId); $role->permissions()->detach(); return $role->delete(); } public function create(array $roleDetails) { return Role::create($roleDetails); } public function update($roleId, array $newDetails) { $role = Role::find($roleId); $role->update($newDetails); return $role; } }