@mawunyo your check is wrong because you are checking for when the start is the exact time first.. Try this:
$appointmentExists = Appointment::where('doctor_id', auth('doctor')->user()->id)
->where('start', '>=', $request['start'])->where('end', '<=', $request['start'])->exists();
if ($appointmentExists)
{
return "This date is already exist";
}
else
{
$appointment = Appointment::create([
'patient_id' => $request['patient_id'],
'doctor_id' => $doctor_id,
'start' => $request['start'],
'end' => $appointment_end,
'title' => $title,
'class'=> $class,
'content'=> $content,
'notes' => $request['notes'],
]);
return $appointment;
}