ARM supply the designs for the CPU core, which is part of the chip. They also supply designs for a bunch of ancillary things that you probably want on your chip - memory controllers, graphics core, etc etc. The chip designer takes whichever of those blocks they want, often takes some other blocks developed in-house (e.g. a GSM radio or Apple's security core), perhaps some blocks from 3rd parties (e.g. there are/were 3rd party graphics core suppliers), puts them together in a single chip design and connects them all together. They may also tweak some of the blocks, with small or large modifications (perhaps including some extra instructions in the CPU, or a different size cache, or a different maximum memory size on the memory controller). They then send the design to a fab to be manufactured.
The designers do need to be chip design experts, but obviously there's a lot less effort involved in taking premade parts and joining them together than writing the whole thing from scratch. It's a bit like programmers using libraries rather than writing everything from scratch.
The chip designers also get the benefit of having the ARM-supplied blocks built by people at ARM who have spent many years trying to make better CPU cores and support blocks, who have a lot of experience in what works and what doesn't, and who can spread that R&D cost across the whole industry not just one product.
The chips produced in this way are custom-designed for specific types of product or even specific products (e.g. Apple). They don't waste die area on features that the product doesn't need, which makes them cheaper - with smaller chips they can fit more chips per wafer, and a smaller percentage of chips will be defective. They can add features the product needs, which makes the product smaller and lighter and cheaper because it doesn't need as many chips.
There is also (several slightly different) standard ARM instruction sets, which are widely supported, which means that you can use existing tooling (compilers/linkers/debuggers/etc) to build code for your new chip. This means that you don't need to port the toolchain to your new chip, so you don't need compiler experts unless you've chosen to customise the instruction set. It also makes porting the OS and bootloader a lot easier, as most of it can use standard drivers, you just have to write drivers for your custom bits of the chip and some OS configuration to tell it how everything is connected.