Собственные исключения необходимы в случаях, когда вы хотите обрабатывать (или, в случае если вы автор библиотеки - предоставить возможности обработки) какой-либо исключительный сценарий специальным образом.
User::find(100500)->someMethod();
{
"message": "Server Error"
}