argument('theme'); $directories = collect(File::directories($themePath)) ->when($only, fn ($c) => $c->filter(fn ($dir) => basename($dir) === $only)); if ($directories->isEmpty()) { $this->error($only ? "Theme [{$only}] not found." : 'No themes found.'); return self::FAILURE; } foreach ($directories as $directory) { $slug = basename($directory); $assets = $directory.'/assets'; if (! is_dir($assets)) { $this->warn("Skip {$slug}: no assets/"); continue; } $target = $publicBase.'/'.$slug; File::deleteDirectory($target); File::copyDirectory($assets, $target); $this->info("Published theme assets: {$slug} → public/themes/{$slug}"); } return self::SUCCESS; } }