<?php namespace App\Repositories\Permission; use App\Repositories\Repository; use Spatie\Permission\Models\Role; class RoleRepository extends Repository { protected $model; public function __construct(Role $model) { $this->model = $model; } public function find($with = null, $id = null) { return $this->model ->when($with, function ($query) use ($with) { return $query->with($with); }) ->when($id, function ($query) use ($id) { return $query->where('id', $id); }) ->first(); } public function get($with = null, $name = null) { return $this->model ->when($with, function ($query) use ($with) { return $query->with($with); }) ->when($name, function ($query) use ($name) { return $query->where('name', 'LIKE', '%' . $name . '%'); }) ->orderBy('name', 'ASC') ->get(); } public function paginate($with = null, $name = null, $limit = 10) { return $this->model ->when($with, function ($query) use ($with) { return $query->with($with); }) ->when($name, function ($query) use ($name) { return $query->where('name', 'LIKE', '%' . $name . '%'); }) ->orderBy('name', 'ASC') ->paginate($limit); } }