private function findOrCreateRecord($key = null)
    {
        if ($key)
        {
            $record = ($this->usesSoftDeletes()) ? $this->withTrashed()->find($key) : $this->find($key);

            // Only return a record if we found one, otherwise we will end up sending a new record back below
            if ($record) return $record;
        }

        return new $this;
    }