/**
  * Validate the input and update the ProjectPhaseDocument in the database.
  *
  * @param \Illuminate\Http\Request $request
  * @param int $projectId
  * @param int $projectPhaseId
  * @param int $projectPhaseDocumentId
  *
  * @return Response
  */
 public function update(Request $request, $projectId, $projectPhaseId, $projectPhaseDocumentId)
 {
     $projectPhaseDocument = ProjectPhaseDocument::where('id', '=', $projectPhaseDocumentId)->where('project_phase_id', '=', $projectPhaseId)->with(['phase'])->firstOrFail();
     // Clone old document to create history
     $historyDocument = new ProjectPhaseDocument();
     $historyDocument->fill(['project_phase_id' => $projectPhaseDocument->project_phase_id, 'parent_project_phase_document_id' => $projectPhaseDocument->id, 'title' => $projectPhaseDocument->title, 'content' => $projectPhaseDocument->content, 'type' => ProjectPhaseDocument::TYPE_HISTORY]);
     if (!$historyDocument->save()) {
         abort(500);
     }
     // Update base document
     $projectPhaseDocument->fill(['title' => $request->input('title'), 'content' => $request->input('content'), 'type' => $request->input('type')]);
     if (!$projectPhaseDocument->save()) {
         abort(503);
     }
     return redirect()->route('project.phase.document.show', ['project' => $projectPhaseDocument->phase->project_id, 'phase' => $projectPhaseDocument->project_phase_id, 'document' => $projectPhaseDocument->id]);
 }