where('business_id', auth()->user()->business_id); // Branch filter if (request('branch_id')) { $incomeQuery->where('branch_id', request('branch_id')); } // Date Filter $duration = request('custom_days') ?: 'today'; $this->applyDateFilter($incomeQuery, $duration, 'incomeDate', request('from_date'), request('to_date')); // Search filter if (request('search')) { $search = request('search'); $incomeQuery->where(function ($query) use ($search) { $query->where('incomeFor', 'like', '%' . $search . '%') ->orWhere('paymentType', 'like', '%' . $search . '%') ->orWhere('amount', 'like', '%' . $search . '%') ->orWhere('referenceNo', 'like', '%' . $search . '%') ->orWhereHas('category', fn($q) => $q->where('categoryName', 'like', '%' . $search . '%')) ->orWhereHas('payment_type', fn($q) => $q->where('name', 'like', '%' . $search . '%')) ->orWhereHas('branch', fn($q) => $q->where('name', 'like', '%' . $search . '%')); }); } $income_reports = $incomeQuery->latest()->limit(request('per_page') ?? 20)->get(); return view('business::reports.income.excel-csv', compact('income_reports')); } }