<?php /** * Add a ScopeActive to an Eloquent Model to only show active services (including those soon to be active) */ namespace App\Traits; use App\Models\Service; trait ScopeServiceActive { /** * Only query active service records */ public function scopeServiceActive($query) { return $query ->where(fn($q)=> $q->where('services.active',TRUE) ->orWhere(fn($q)=> $q->whereNotNull('order_status') ->whereNotIn('services.order_status',Service::INACTIVE_STATUS)) ); } public function scopeServiceInactive($query) { return $query ->where(fn($q)=> $q->where('services.active',FALSE) ->orWhere(fn($q)=> $q->whereNotNull('order_status') ->whereIn('services.order_status',Service::INACTIVE_STATUS)) ); } }