/**
  * Given a RedBeanModel, process afterSave actions such as update related, create, and create related.
  * Also process any email messages.  If the workflow is by-time, then we should process the ByTimeWorkflowInQueue
  * model.
  * @param Item $model
  * @param User $triggeredByUser
  * @throws NotSupportedException
  */
 public static function resolveAfterSaveByModel(Item $model, User $triggeredByUser)
 {
     foreach ($model->getWorkflowsToProcessAfterSave() as $workflow) {
         if ($workflow->getType() == Workflow::TYPE_BY_TIME) {
             static::processToByTimeWorkflowInQueue($workflow, $model);
         } elseif ($workflow->getType() == Workflow::TYPE_ON_SAVE) {
             WorkflowActionsUtil::processAfterSave($workflow, $model, $triggeredByUser);
             WorkflowEmailMessagesUtil::processAfterSave($workflow, $model, $triggeredByUser);
         } else {
             throw new NotSupportedException();
         }
     }
 }