'Fixed Limit', self::PERCENTAGE => 'Percentage', self::UNLIMITED => 'Unlimited', }; } public static function values(): array { return array_column(self::cases(), 'value'); } public function getAllocationValueRules(): array { return match ($this) { self::FIXED_LIMIT => ['required', 'numeric', 'min:0'], self::PERCENTAGE => ['required', 'numeric', 'min:0.01', 'max:100'], self::UNLIMITED => ['nullable'], }; } }