Have a CourseEnrollment with user_id, course_id, start_time, end_time. Now when the student registers, via Ajax use Eloquent's hasBetween to check that the current user has a course in that time or not. You can also, with course_id check for course capacity saved in a separate table or compute it on the fry. Check conflict only on complete data entry by the user to reduce the no. of API requests. Also you may have a "check availability" button next to each row, and unless all are checked true, dont allow the user to submit the form. On submit, verify the data and access again and create those entries.
Cheers.