/**
 * @param Survey $survey
 * @param array $data
 * @return bool
 */
public function update(Survey $survey, array $data)
{
    if(isset($data['questions'])) {
        foreach ((array)$data['questions'] as $question) {
            if(!$survey->questions->where('name', $question['name'])->count()) {
                $survey->questions()->create($question);
            }
        }

        // remove old questions
        $survey->questions()->whereNotIn('name', array_pluck($data['questions'], 'name'))->delete();
    }

    $this->resetActive($data);

    $survey->buyer = 1;
    $survey->seller = 1;
    $survey->save();

    //return $survey->fill($data)->save();
}

/**
 * Reset active buyer or active seller
 *
 * @param $data
 * @return bool
 */
public function resetActive($data)
{
    if(!isset($data['buyer']) && !isset($data['seller'])) {
        return false;
    }

    if(isset($data['buyer'])) {
        Survey::where('buyer', 1)->update(['buyer' => 0]);
    }

    if(isset($data['seller'])) {
        Survey::where('seller', 1)->update(['seller' => 0]);
    }

    return true;
}