'required|date|before:end_date', 'end_date' => 'required|date|after:start_date', ]; public function mount($customers) { $this->customers = $customers; $this->start_date = today()->subDays(30)->format('Y-m-d'); $this->end_date = today()->format('Y-m-d'); $this->customer_id = ''; $this->sale_status = ''; $this->payment_status = ''; } public function render() { $sales = Sale::whereDate('date', '>=', $this->start_date) ->whereDate('date', '<=', $this->end_date) ->when($this->customer_id, function ($query) { return $query->where('customer_id', $this->customer_id); }) ->when($this->sale_status, function ($query) { return $query->where('status', $this->sale_status); }) ->when($this->payment_status, function ($query) { return $query->where('payment_status', $this->payment_status); }) ->orderBy('date', 'desc')->paginate(10); return view('livewire.reports.sales-report', [ 'sales' => $sales ]); } public function generateReport() { $this->validate(); $this->render(); } }