my $club = $c->model("DB::Clubs")
->create({ some_data => "asdfasdf",
venue => $id });
####
my $venue = $c->model("DB::Venue")->find($id);
$venue->add_to_clubs({ some_club_data => "Without venue" });
####
# Inside MySchema::Result::Club.
sub insert {
my $self = shift;
return $self if $self->in_storage;
croak "No venue provided..." unless $self->venue;
my $schema = $self->result_source->schema;
croak "Venue is invalid..."
unless $schema->resultset("Venue")->find($self->venue);
$self->next::method();
}
sub update {
my $self = shift;
my %to_update = $self->get_dirty_columns
|| return $self->next::method(@_);
$to_update{venue} || return $self->next::method(@_);
croak "Venue is invalid..."
unless $schema->resultset("Venue")->find($to_update{venue});
$self->next::method(@_);
}