ruleGroups()->with( [ 'rules' => function (HasMany $query) { $query->hasTrigger('user_action', 'store-journal'); } ] )->orderBy('order', 'ASC')->get(); // /** @var RuleGroup $group */ foreach ($groups as $group) { $rules = $group->rules; /** @var Rule $rule */ foreach ($rules as $rule) { Log::debug('Now handling rule #' . $rule->id); $processor = new Processor($rule, $event->journal); // get some return out of this? $processor->handle(); } } } }