uniqueSlug($title); $artwork = Artwork::create([ 'user_id' => $userId, 'title' => $title, 'slug' => $slug, 'description' => $description, 'file_name' => 'pending', 'file_path' => '', 'file_size' => 0, 'mime_type' => 'application/octet-stream', 'width' => 1, 'height' => 1, 'is_public' => false, 'is_approved' => false, 'published_at' => null, ]); return new ArtworkDraftResult((int) $artwork->id, 'draft'); }); } private function uniqueSlug(string $title): string { $base = Str::slug($title); $base = $base !== '' ? $base : 'artwork'; for ($i = 0; $i < 5; $i++) { $suffix = Str::lower(Str::random(6)); $slug = Str::limit($base . '-' . $suffix, 160, ''); if (! Artwork::where('slug', $slug)->exists()) { return $slug; } } return Str::limit($base . '-' . Str::uuid()->toString(), 160, ''); } }