'required|integer|exists:accounts,id', 'life_event_id' => 'required|integer', 'life_event_type_id' => 'required|integer', 'happened_at' => 'required|date', 'name' => 'nullable|string', 'note' => 'nullable|string', ]; } /** * Update a life event. * * @param array $data * @return LifeEvent */ public function execute(array $data): LifeEvent { $this->validate($data); /** @var LifeEvent */ $lifeEvent = LifeEvent::where('account_id', $data['account_id']) ->findOrFail($data['life_event_id']); $lifeEvent->contact->throwInactive(); LifeEventType::where('account_id', $data['account_id']) ->findOrFail($data['life_event_type_id']); $lifeEvent->update([ 'happened_at' => $data['happened_at'], 'life_event_type_id' => $data['life_event_type_id'], 'name' => $data['name'], 'note' => $data['note'], ]); return $lifeEvent; } }