isTranscribing() || $recording->hasActiveTranscriptionJob()) { $recording->cancelTranscription(silent: true); $recording->refresh(); } $recording->update([ 'transcription_driver' => 'local', '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.'); } }