['required', Rule::exists('tiers', 'id')], 'name' => ['required', 'string', 'max:100'], 'value' => ['required', new UnsignedInteger], 'how_to_get' => 'nullable', ]; } public function validationAttributes(): array { return [ 'name' => 'nama', 'value' => 'nilia', 'how_to_get' => 'cara mendapatkan', ]; } public function setRewards(TierReward $tierReward) { $this->tierReward = $tierReward; $this->tier_id = $tierReward->tier_id; $this->name = $tierReward->name; $this->value = currency($tierReward->value); $this->how_to_get = $tierReward->how_to_get; } public function store() { $this->validate(); return TierReward::create($this->prepareSavedData()); } public function update() { $this->validate(); $this->tierReward->update($this->prepareSavedData()); return $this->tierReward; } private function prepareSavedData() { return [ 'tier_id' => $this->tier_id, 'name' => $this->name, 'value' => replaceCurrency($this->value), 'how_to_get' => $this->how_to_get, ]; } }