code: def save!
        if persisted?
          update(to_h)
        else
          self.id = resource_gateway.create(to_h)
        end
        self
      rescue RestClient::Exception => e
        raise_failed_request_error(e)
      end
docs: Try to persist the current object to the server by creating a
   new resource or updating an existing one. Raise an error if the
   object can't be saved.
  
   @raise [FailedRequestError] if the request failed for any reason.
  
   @return [Model] the model itself, if saving succeeded.