$policy->definitions(), 'values' => $policy->values(), ]); } public function update(Request $request, ReservationPolicy $policy): RedirectResponse { $rules = []; foreach ($policy->definitions() as $key => $definition) { $rules[str_replace('.', '\\.', $key)] = ['required', 'integer', 'min:'.$definition['min'], 'max:'.$definition['max']]; } $request->validate($rules); /** @var array $values */ $values = collect(array_keys($policy->definitions())) ->mapWithKeys(fn (string $key): array => [$key => (int) $request->all()[$key]]) ->all(); $policy->update($values, $request->user()); return back()->with('success', 'Regras de reserva atualizadas e aplicadas a novos pedidos.'); } }