recording->update([ 'transcription_status' => 'processing', ]); try { $text = $transcription->transcribe($this->recording); $this->recording->update([ 'transcript' => $text, 'transcription_status' => 'done', 'transcribed_at' => now(), ]); } catch (Throwable $e) { Log::error('Transcription failed', [ 'recording_id' => $this->recording->id, 'driver' => $this->recording->transcription_driver, 'message' => $e->getMessage(), ]); $this->recording->update([ 'transcription_status' => 'failed', ]); throw $e; } } }