public function scopeFilteredBySearch($query)
    {
        if (request()->search) {
            $query
                ->orWhere(function ($q) {
                    $columns = Schema::getColumnListing('orders');
                    foreach ($columns as $column) {
                        $q->orWhere($column, 'LIKE', '%' . request()->search . '%');
                    }
                })
                ->orWhereHas('removals', function ($r) {
                    return $r->where('reference_number', 'LIKE', '%' . request()->search . '%');
                });

            return $query;
        }
        
        return $query;
    }

    public function scopeFilteredByPStatus($query)
    {
        if (request()->pstatus) {
            return $query
                ->leftJoin('logs as lg', function ($qqq) {
                    return $qqq
                        ->on('orders.id', '=', 'lg.entity_id');
                })
                ->orderBy('lg.created_at', 'desc')
                ->where('payment_status', request()->pstatus)
                ->groupBy('orders.id')
                ->select('orders.*');

        }
        
        return $query;
    }