title: Laravel audit log for model events using generic way
body: <p>I am using <code>Laravel 5.2</code>. </p>
  
  <p>I want to create audit log entries for each and every <code>model</code> in my project. Whenever any <code>model</code> gets <code>created, updated or deleted</code>; the audit log for that record should be logged along with old and new values. </p>
  
  <p>For example if I update user's first name from <code>John</code> to <code>George</code>, the audit table entry should be logged something like <code>First name updated from John to George</code>.</p>
  
  <p>I know I can fire created, updated and deleted events and using individual listners I can log this. But I want to create it more generic way. </p>
  
  <p>I don't want to define <code>boot</code> method with <code>created</code>, <code>updated</code> and <code>deleted</code> <code>events</code> in each and every <code>model</code> as I have more than 75 <code>models</code> existing in my project. I don't like duplication of that method in each and every model. I want to make it more <code>generic</code> way, like use something like <code>trait</code>, using that in <code>model</code> should automatically identify which <code>event</code> is fired. </p>
  
  <p>Again, the <code>listener</code> will also listen the event but not for any specific model but <code>generic</code>. I don't want any tight coupling. It should decide which model is updated and make entry of log according to that. </p>
  
  <p>Can any one guide me how to achieve this? </p>