public function getPermissionByResourceAndAction($resources) { // get 1st item to kick thing off // its ok since this going to end up as or foreach ($resources as $resource => $actions) { foreach ($actions as $action) { $permissions = Permission::Where(function ($query) use($resource, $action) { $query->where('resource', $resource)->where('action', $action); }); break; } break; } // continue chaining foreach ($resources as $resource => $actions) { foreach ($actions as $action) { $permissions->orWhere(function ($query) use($resource, $action) { $query->where('resource', $resource)->where('action', $action); }); } } return $permissions->get(); }