Problém je ve volání $dossier->program
ve skutečnosti nepřistupuje k vlastnosti přímo v modelech typu Eloquent, ale spíše volá __get
metoda.
Tato metoda get nevrací odkaz na vlastnost. Co byste měli udělat, je uchopit původní vlastnost, upravit ji a poté ji vrátit zpět:
$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();