/**
  * Get a copy of the given Doctrine table after making the column changes.
  *
  * @param  \Illuminate\Database\Schema\Blueprint  $blueprint
  * @param  \Doctrine\DBAL\Schema\Table  $table
  * @return \Doctrine\DBAL\Schema\TableDiff
  */
 protected function getTableWithColumnChanges(Blueprint $blueprint, Table $table)
 {
     $table = clone $table;
     foreach ($blueprint->getChangedColumns() as $fluent) {
         $column = $this->getDoctrineColumnForChange($table, $fluent);
         // Here we will spin through each fluent column definition and map it to the proper
         // Doctrine column definitions - which is necessary because Laravel and Doctrine
         // use some different terminology for various column attributes on the tables.
         foreach ($fluent->getAttributes() as $key => $value) {
             if (!is_null($option = $this->mapFluentOptionToDoctrine($key))) {
                 if (method_exists($column, $method = 'set' . ucfirst($option))) {
                     $column->{$method}($this->mapFluentValueToDoctrine($option, $value));
                 }
             }
         }
     }
     return $table;
 }