/** * @param array $talk * @return Talk */ private function createTalk($talk) { $data = ['is_talk' => (int) $talk['is_talk'], 'track' => (int) $talk['track'] > 0 ? (int) $talk['track'] : null, 'title' => $talk['title'], 'starts_at' => $talk['starts_at'], 'ends_at' => $talk['ends_at']]; if (isset($talk['author']) && ($speaker = Speaker::whereName($talk['author'])->first())) { return $speaker->talks()->create($data); } return Talk::create($data); }