Yes, it looks like you need another table. I've just taken an educated guess at the table names because I'm not 100% sure what these times and professions refer to, it looks like you already have a table storing the professions, but here are the relationships I can see:
A user can have many events
An event belongs to a user
An event has many timeslots
A timeslot belongs to an event
A profession has many timeslots
A timeslot has many professions
So your events and professions (don't worry if you've called it something else) table should look like:
events(id, user_id, name, start, end);
professions(id, profession,..);
And you need to add an extra table:
time_slots(id, event_id, profession_id, amount, from, to, hours)
Then set those relationships up inside your models.
EDIT
The basic way to make a store method is to use the relationships like so:
public function store(Request $request){
// Get the request as an array
$request = $request->all();
// create a new event
$event = Event::create($request);
// Map timeslots to an array of Timeslot objects:
$timeslots = array_map(function($personalId, $amount, $from, $to, $hours) {
return new App\Timeslot($personalId, $amount, $from, $to, $hours);
}, $request['personal_id'], $request['amount'], $request['from'], $request['to'], $request['hours']);
// Save all timeslots for the event
$event->timeslots()->saveMany($timeslots)
}
I haven't tried that code, but it should point you inb the right direction. You should take a look at laravel relationships to see how this works:
https://laravel.com/docs/5.3/eloquent-relationships#the-save-method