Вы документацию хоть немного пробовали читать вообще? Там всё есть, включая пример отсылки сообщений. В конфигурации можно указать использование локальной отсылки с помощью той самой функции mail(). В общем, читайте доки, это займёт не более 5 минут.
И в L4 и в L5 так было всегда. Updated_At всегда выставлялось равным Created_At при создании записи. Смотрите сорсы, там это есть.
Выход - выключить timestamps и обновлять эти поля самому в событиях модели (например, User::creating() или User::updating()). Подробнее: https://laravel.com/docs/5.3/eloquent#events
Класс миграции был не включён в автозагрузку, то есть Composer его не видит, соответственно Laravel тоже. Помогает команда консоли composer dump -o после создания новой миграции.
На ютубе довольно много видео, также советую посмотреть серии от Laracasts, Джеффри там делал соцсеть и ещё несколько вещей, довольно доступно и с соблюдением принципов разработки и архитектуры