title: Document versioning in Laravel
body: <p>In a project I'm working on I have to take policies written in Microsoft Word and make them into pages of content. One key requirement is that there must be a notion of versioning e.g. Grievance Policy version 2. Further to this users must acknowledge given policy via ticking a box.</p>
  <p>So, how I'm approaching this is like so:</p>
  <ul>
  <li>A <code>Policy</code> model with a title, content, author and version number which links to a <code>policies</code> table</li>
  <li>A <code>PolicyAcknowledgement</code> model that acts as a pivot between <code>User</code> and <code>Policy</code></li>
  </ul>
  <p>Now the part that I can't quite get my head around is the fact that if I'm copying in a 26 page document into a WYSIWYG editor I may save it to find it needs further edits, however this by definition, is not a new version per say as I have not changed any actual content.</p>
  <p>So, as much as I could pull in a package that stores model revisions, how would you go about the dilemma which is not every revision is a new version?</p>
  <p><strong>My idea</strong></p>
  <p>In the editing view for a policy, have an extra tick box that says save as a new version, then in the method where you would usually update an existing model, you instead duplicate the model, whilst incrementing the version number.</p>
  <p>The shortcomings of this is that if you did need the version history for the sake of compliance you would need a further identifier that pulls all the policy recording together under one grouping.</p>
  <hr />
  <p>As much as this is a somewhat open question, is what I'm describing revisions with a slight tweak or is there a more practical approach?</p>