new self(self::LastHour, 60), self::LastWeek => new self(self::LastWeek, 10080), default => new self(self::LastDay, 1440), }; } /** * @return array */ public static function options(): array { return [ self::LastHour => 'Last hour', self::LastDay => 'Last 24 hours', self::LastWeek => 'Last 7 days', ]; } /** * @return array */ public static function allowed(): array { return array_keys(self::options()); } public function startAt(?CarbonImmutable $now = null): CarbonImmutable { $now ??= CarbonImmutable::now(); return $now->subMinutes($this->minutes); } }