get('range', '7d'); $to = Carbon::today(); $from = match ($range) { 'today' => Carbon::today(), '7d' => Carbon::today()->subDays(6), '30d' => Carbon::today()->subDays(29), '90d' => Carbon::today()->subDays(89), 'custom' => Carbon::parse($request->get('from', Carbon::today()->subDays(6)->toDateString())), default => Carbon::today()->subDays(6), }; if ($range === 'custom' && $request->has('to')) { $to = Carbon::parse($request->get('to')); } if ($from->gt($to)) { [$from, $to] = [$to, $from]; } return [$from, $to]; } private function previousPeriod(Carbon $from, Carbon $to): array { $days = $from->diffInDays($to) + 1; $prevTo = $from->copy()->subDay(); $prevFrom = $prevTo->copy()->subDays($days - 1); return [$prevFrom, $prevTo]; } }