'array', ]; protected static function booted(): void { static::addGlobalScope(new CompanyScope); } public function approvalFlow() { return $this->belongsTo(ApprovalFlow::class)->withTrashed(); } public function createdBy() { return $this->belongsTo(User::class, 'created_by'); } public function scopeAllowed(Builder $query, bool $isView = false): void { $query->where(function(Builder $query) { $query->where("users", 'like', '%,'.Auth::id().',%') ->whereIn("approval_mode", [ ApprovalMode::COUNTERSIGNATURE->value, ApprovalMode::ALTERNATIVE_APPROVAL->value, ]); })->orWhere(function (Builder $query) { $query->where("users", 'like', ','.Auth::id().',%') ->whereIn("approval_mode", [ ApprovalMode::SEQUENTIAL_APPROVAL->value, ]); }) ->when($isView, fn(Builder $query) => $query->orWhere("created_by", Auth::id())) ->when($isView, fn(Builder $query) => $query->orWhere("action_users", 'like', '%,'.Auth::id().',%')); } }