isTranscribing() || $recording->hasActiveTranscriptionJob()) { $recording->cancelTranscription(silent: true); $recording->refresh(); } $driver = $request->validated('driver'); $recording->update([ 'transcription_driver' => $driver, 'ollama_url' => $driver === 'ollama' ? rtrim($request->validated('ollama_url'), '/') : null, 'transcription_status' => 'pending', 'transcription_progress' => 'Queued — waiting to start…', 'transcription_percent' => 5, 'transcription_started_at' => now(), 'transcription_error' => null, // Keep the previous transcript until a new run succeeds. 'transcribed_at' => $recording->transcribed_at, ]); TranscribeRecording::dispatch($recording->fresh()); return back()->with('success', 'Transcription started. Progress updates below.'); } }