'datetime', ]; /** * The accessors to append to the model's array form. * * @var array */ protected $appends = [ 'profile_photo_url', ]; /** * @return \Illuminate\Support\Collection */ public function menus() { return Menu::whereNull('parent_id') ->where(function (Builder $query) { $query->whereHas('permissions', function (Builder $query) { $query->whereIn('permissions.id', $this->permissions->pluck('id')->push(...$this->roles->pluck('permissions')->flatten()->pluck('id'))); })->orDoesntHave('permissions'); }) ->orderBy('position') ->with('childs') ->get(); } }