Use WordPress when the site is mostly pages, posts and images, your own team will edit it, and the features you need already exist as maintained plugins. Build custom when the software has rules of its own: pricing logic, approvals, stock behaviour, or an integration a plugin would have to be fought into doing. That single question separates the two more reliably than budget does.
Why you cannot trust the answer you are given
Both answers are self-serving depending on who you ask. A WordPress shop will find a way to build your application in WordPress. A custom development shop will find your brochure site fascinatingly complicated. Neither is lying; both are describing the world through the tools they own.
The question above is useful precisely because you can answer it yourself, without knowing anything about either technology.
What going wrong looks like in each direction
Custom when WordPress would have done. You pay several times more for something a visitor cannot tell apart, and you acquire a dependency: every text change now needs whoever built it. This is expensive and recoverable.
WordPress when it should have been custom. The application gets built out of eleven plugins that were never designed to work together. Each update risks breaking a different one, so eventually nobody updates anything, and an unpatched plugin becomes the route in. This is how small businesses end up with defaced sites, and it is much harder to recover from than paying too much.
The plugin count test
A useful rough measure. If the features you need can be met by three or four well-maintained plugins, WordPress is a good fit. If a developer's plan involves eleven, ask what happens when the fourth one is abandoned by its author, because roughly one in four will be within a few years.
The middle option people forget
WordPress for the pages, and a separate application for the part that has rules. A marketing site your team edits, and an ordering system built properly, connected by an interface. It is often cheaper than either extreme and it fails in smaller pieces.
Web Development Laravel WordPress