format('Y-m-d'); } catch (\Throwable) { return ''; } } public static function forDisplay(?string $value): string { if ($value === null || trim($value) === '') { return ''; } $value = trim($value); if (preg_match('/^\d{4}-\d{2}-\d{2}$/', $value)) { try { return Carbon::createFromFormat('Y-m-d', $value)->format('D, j M Y'); } catch (\Throwable) { return $value; } } return $value; } public static function normalize(?string $value, int $maxLength = 60): string { if ($value === null || trim($value) === '') { return ''; } $value = trim($value); try { return Carbon::parse($value)->format('Y-m-d'); } catch (\Throwable) { return mb_substr($value, 0, $maxLength); } } }