user()?->name ?? 'user'); // Sanitize: lowercase, keep only alphanumeric, collapse to max 20 chars $slug = preg_replace('/[^a-z0-9]/', '', strtolower($user)); $slug = substr($slug ?: 'user', 0, 20); $now = now(); $ms = str_pad((int) ($now->microsecond / 1000), 3, '0', STR_PAD_LEFT); $timestamp = $now->format('Ymd') . '_' . $now->format('His') . '_' . $ms; $ext = ltrim(strtolower($extension), '.'); return "{$slug}_{$timestamp}.{$ext}"; } }