public static function instantiate(User $user, $parent, $data) { $instance = new self(); $instance->author()->associate($user); if ($parent instanceof Post) { $instance->post()->associate($parent); } elseif ($parent instanceof Comment) { $instance->post_id = $parent->post_id; } $instance->fill($data)->save(); if ($parent instanceof Comment) { $instance->makeChildOf($parent); } return $instance; }