['required', 'string', 'max:20'], 'size' => ['required', 'integer', 'min:1'], 'volume' => ['required', new UnsignedInteger], ]; } public function validationAttributes(): array { return [ 'quality' => 'kualitas', 'size' => 'ukuran', ]; } public function setFormula(Formula $formula): void { $this->formula = $formula; $this->quality = $formula->quality; $this->size = $formula->size; $this->volume = replaceCurrency($formula->volume); } public function store(): Formula { $this->validate(); return DB::transaction(function () { return Formula::create($this->prepareDataForSave()); }); } public function update(): Formula { $this->validate(); return DB::transaction(function () { $this->formula->update($this->prepareDataForSave()); return $this->formula; }); } private function prepareDataForSave(): array { return [ 'quality' => $this->quality, 'size' => $this->size, 'volume' => replaceCurrency($this->volume), ]; } }