$this->getName(), ]; } public function getName(): string { return class_basename($this); } /** * @return InputField[] */ public function fieldClasses(): array { return []; } /** * @return array> */ public function fields(): array { return collect($this->fieldClasses()) ->mapWithKeys(fn (InputField $field): array => [ $field->getName() => [ 'name' => $field->getName(), 'type' => $field->getType(), 'rules' => $field->getRules(), ], ]) ->toArray(); } }