form = Form::findOrFail($request->route('id')); } public function rules() { $validColumns = collect(array_merge( $this->form->properties, $this->form->removed_properties ?? [] ))->pluck('id')->toArray(); $validColumns[] = 'created_at'; return [ 'columns' => 'required|array', 'columns.*' => ['boolean', 'required'], 'columns' => [function ($attribute, $value, $fail) use ($validColumns) { $submittedColumns = array_keys($value); $invalidColumns = array_diff($submittedColumns, $validColumns); if (!empty($invalidColumns)) { $fail('The columns contain invalid values: ' . implode(', ', $invalidColumns)); } }], ]; } }