Design Patterns in PHP and Laravel