protected function saveSource()
    {
        // This part is only for the first save
        // as we temporarily keep the source model before
        // the parent saves.
        if ( ! is_null($this->tempSource))
        {
            $saved = $this->source()->save(
                $this->tempSource);

            // Reload the relation
            $this->load('source');

            $this->flushTemporarySource();

            return ! is_null($saved);
        }

        return $this->source->save();
    }