agent($request); return view('portal.home', [ 'agent' => $agent, 'profile' => $profiles->profile($agent), 'full' => $builder->build($agent, 'new'), 'reply' => $builder->build($agent, 'reply'), ]); } public function update(Request $request, ProfileService $profiles): RedirectResponse { $agent = $this->agent($request); $values = []; foreach ((array) $request->input('fields', []) as $key => $row) { $mode = $row['mode'] ?? 'directory'; $values[$key] = match ($mode) { 'custom' => (string) ($row['value'] ?? ''), 'hidden' => '', default => null, }; if ($mode === 'custom' && trim((string) ($row['value'] ?? '')) === '') { $values[$key] = null; // valeur perso vide : on revient à l'annuaire } } $reply = $request->input('reply_variant'); $profiles->update($agent, $values, $reply === 'default' ? null : $reply, $request->has('reply_variant'), (string) $agent->mail); return back()->with('status', 'Vos informations sont enregistrées : elles s\'appliquent à vos prochains messages.'); } private function agent(Request $request): DirectoryUser { $user = $request->user(); return DirectoryUser::where('tenant_id', $user->tenant_id)->where('entra_oid', $user->entra_oid)->firstOrFail(); } }