hasMany(HarimHistory::class); } protected function primaryArea(): Attribute { return Attribute::make( get: fn($value) => json_decode($value) ); } /** * @throws Throwable */ public function updateStateWithHistory(int $action, string $description , array $data): void { DB::transaction(function () use ($action, $description, $data) { $this->histories()->create([ 'expert_id' => auth()->user()->id, 'previous_state_id' => $this->state_id, 'previous_state_name'=> $this->state_name, 'expert_description' => $description, 'action_id' => $action, 'action_name' => HarimAction::name($action), ]); $this->update($data); }); } }