Problemet är att anropet $dossier->program
kommer faktiskt inte åt egenskapen direkt i Eloquent-modeller utan anropar snarare en __get
metod.
Den get-metoden returnerar inte en referens till egenskapen. Vad du bör göra är att ta tag i den ursprungliga egenskapen, ändra den och sedan lägga tillbaka den:
$dossier=Dossier::where('_id',(int)$request->input('dossier_id'))->first();
$originalProgram = $dossier->program;
$originalProgram[$request->input('program')]['cities'][$request->input('city')]['services'][$request->input('service')][$request->input('name')]=$request->input('value');
$dossier->program = $originalProgram;
$dossier->save();