my $user = MyClass::DBI->do_transaction(sub { my($self) = @_; my $model = MyClass::DBI::Users->create({ 'user_id' => $self->user_id, 'email_address' => $self->email_address, }); foreach my $group ($self->groups) { $model->add_to_groups({ 'group_id' => $group }); } return($model); },$self);