journal; $groups = $journal->user->ruleGroups()->where('rule_groups.active', 1)->orderBy('order', 'ASC')->get(); // /** @var RuleGroup $group */ foreach ($groups as $group) { $rules = $group->rules() ->leftJoin('rule_triggers', 'rules.id', '=', 'rule_triggers.rule_id') ->where('rule_triggers.trigger_type', 'user_action') ->where('rule_triggers.trigger_value', 'update-journal') ->where('rules.active', 1) ->get(['rules.*']); /** @var Rule $rule */ foreach ($rules as $rule) { $processor = Processor::make($rule); $processor->handleTransactionJournal($journal); if ($rule->stop_processing) { break; } } } return true; } /** * This method calls a special bill scanner that will check if the updated journal is part of a bill. * * @param UpdatedTransactionJournal $updatedJournalEvent * * @return bool */ public function scanBills(UpdatedTransactionJournal $updatedJournalEvent): bool { $journal = $updatedJournalEvent->journal; BillScanner::scan($journal); return true; } }