*/ protected $fillable = [ 'name', 'email', 'password', 'role_id', 'reset_token', ]; /** * The attributes that should be hidden for serialization. * * @var array */ protected $hidden = [ 'password', 'remember_token', ]; /** * The attributes that should be cast. * * @var array */ protected $casts = [ 'email_verified_at' => 'datetime', ]; public function role() { return $this->belongsTo(Role::class); } public function allow($permission, $abort = false) { if ($this->role_id == null) { return true; } $permit = $this->role()->whereHas('permissions', function ($query) use ($permission) { return $query->where('name', $permission); })->first(); if ($permit != null) { return true; } if ($abort) { abort(403); } return false; } }