Is there a right way to edit a record and save as a new record?

Is there a right way to edit a record and save as a new record?

I would probably save a new record on on validate section and then cancel submit.
Is there a better way to do that without an alert message to user?

I want to use some records as templates.